<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="version" content="For Json viewer">
    <title>ApiPost接口文档</title>
    <link href="https://img.cdn.apipost.cn/v6/docs/img/doc_favicon.ico" rel="shortcut icon" type="image/x-icon">
    <link rel="stylesheet" type="text/css" href="https://img.cdn.apipost.cn/docs/css/reset.css">
    <link rel="stylesheet" type="text/css" href="https://img.cdn.apipost.cn/docs/css/font-awesome-4.7.0/css/font-awesome.css">
    <link rel="stylesheet" href="https://img.cdn.apipost.cn/docs/css/github.css">
    <script type="text/javascript"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/jquery-3.4.1.min.js"></script>
    <script src="https://img.cdn.apipost.cn/docs/js/colResizable-1.6.min.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/marked.min.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/template-web.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/highlight.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/clipboard.min.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/statics/libs/crypto-js/crypto-js.min.js" charset="utf-8"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/json5.min.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/js/enc.min.js"></script>
    <script type="text/javascript" src="https://img.cdn.apipost.cn/docs/json-viewer/json-viewer.min.js"></script>
    <script src="https://img.cdn.apipost.cn/docs/js/indent.js"></script>

    <script>
        Date.prototype.format = function (fmt) {
            var o = {
                "M+": this.getMonth() + 1,                 //月份
                "d+": this.getDate(),                    //日
                "h+": this.getHours(),                   //小时
                "m+": this.getMinutes(),                 //分
                "s+": this.getSeconds(),                 //秒
                "q+": Math.floor((this.getMonth() + 3) / 3), //季度
                "S": this.getMilliseconds()             //毫秒
            };
            if (/(y+)/.test(fmt)) {
                fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
            }
            for (var k in o) {
                if (new RegExp("(" + k + ")").test(fmt)) {
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
                }
            }
            return fmt;
        }
    </script>
    <style type="text/css">
        .preview-markdown table td {
            position: relative;
        }

        .indent-fold {
            border: 0;
            background: transparent;
            position: absolute;
            left: -25px;
            top: 10px;
            font-size: 24px;
            color: #999;
            cursor: pointer;
            text-align: center;
            width: 15px;
            height: 15px;
            padding: 0;
        }

        .indent-fold img {
            position: static !important;
            transform: translateY(0);
        }

        .indent-fold.right img {
            transform: rotate(0);
        }

        .indent-fold.down img {
            transform: rotate(-90deg);
        }
    </style>

    <link rel="stylesheet" href="https://img.cdn.apipost.cn/docs/css/docs.css">
    <link rel="stylesheet" href="https://img.cdn.apipost.cn/docs/css/v6.css">
    <link rel="stylesheet" href="https://img.cdn.apipost.cn/docs/css/jsonview.css">
    <style>
       .body .box{
            height: calc(100vh - 60px);
        }

        .JCLRgrip .JColResizer {
            cursor: col-resize;
        }

        table tr td,
        th {
            text-indent: 8px;
        }

        .JColResizer>tbody>tr>td,
        .JColResizer>tbody>tr>th {
            overflow: visible !important;
        }
    </style>
</head>

<body>
<!-- <body> -->
<div class="body">
    <div class="doc-head">
        <div class="left">
            <a href="https://www.apipost.cn/" target="_blank" title="ApiPost接口与文档管理系统">
                <img src="https://img.cdn.apipost.cn/v6/docs/img/logov6.svg" alt="ApiPost接口与文档管理系统">
            </a>
        </div>
        <div class="container">

        </div>
    </div>
    <div class="box">
        <div class="box-first" style="display: flex; flex-direction: column;justify-content: flex-end;">
            <div class="sreachInput">
                <img src="https://img.cdn.apipost.cn/v6/docs/img/search.svg" alt="">
                <input type="text" class="search" placeholder="搜索目录/接口">
            </div>
            <div class="title">

            </div>
            <div class="target top" data-target_id="001">
                <div class="globals_select"></div>
                全局参数
            </div>
            <div class="new">

            </div>
            <!-- <a href="https://www.toutiao.com/i6960487351701275149/" id = "advertise" target="_blank" style="display: inline-block; width: 300px;height: 70px;background: url('https://img.cdn.apipost.cn/cdn/images/a-long-letter.svg?0424') no-repeat left"></a> -->
            <div class="bar"></div>
            <script type="text/html" id="template-target-sidebar-list-tpl">
                {{each list value}}
                <div>
                    <div class="target {{value.target_type == 'folder' ? 'folder':'api'}}"
                         data-type="{{value.target_type}}"
                         data-target_id="{{value.local_target_id}}">
                        {{if value.target_type == 'folder'}}
                        <span>
                       <span class="control">
                           {{if value.children}}
                           <div class="folder_select">

                           </div>
                           {{/if}}
                        </span>
                       <span>
                         <div class="img">

                         </div>
                         {{value.name}}
                        </span>
                       </span>
                        {{else}}
                        <span>
                         <em class="{{((value.target_type == 'doc') || (value.target_type == 'example' && value.is_doc == 1)) ? 'DOC' : value.target_type != 'example' ? value.method : value.method}}">{{(value.target_type == 'doc' || (value.target_type == 'example' && value.is_doc == '1')) ? '文本' :  value.method == 'OPTIONS' ? 'OPT' : value.method == 'DELETE' ? 'DEL' : value.method == 'UNLINK' ? 'UNLNK' : value.method == 'UNLOCK' ? 'UNLCK' : value.method == 'PROPFIND' ? 'PROP' : value.method}}</em>
                       <span>{{value.name}}</span>
                       </span>
                        <span></span>
                        {{/if}}
                    </div>
                    {{if value.children!=null}}
                    {{each value.children data}}
                    {{set a=data["index"]=3}}
                    {{include 'list1' data}}
                    {{/each}}
                    {{/if}}
                </div>
                {{/each}}
            </script>
            <script type="text/html" id="list1">
                <div>
                    <div class="target {{target_type == 'folder' ? 'folder':'api'}}" data-type="{{target_type}}"
                         data-target_id="{{local_target_id}}"
                         style="padding-left:{{index * 15}}px">
                        {{if target_type == 'folder'}}
                        <span>
                           <span class="control">
                              {{if children}}
                              <div class="folder_select">

                              </div>
                              {{/if}}
                            </span>
                        <span>
                           <div class="img">

                         </div>
                          {{name}}
                        </span>
                       </span>
                        {{else}}
                        <span>
                          <em class="{{((target_type == 'doc') || (target_type == 'example' && is_doc == 1)) ? 'DOC' : target_type != 'example' ? method : method}}">{{(target_type == 'doc' || (target_type == 'example' && is_doc == '1')) ? '文本' :  method == 'OPTIONS' ? 'OPT' : method == 'DELETE' ? 'DEL' : method == 'UNLINK' ? 'UNLNK' : method == 'UNLOCK' ? 'UNLCK' : method == 'PROPFIND' ? 'PROP' : method}}</em>
                          <span>{{name}}</span>
                          </span>
                        <span></span>
                        {{/if}}
                    </div>
                    {{if children!=null}}
                    {{each children data}}
                    {{if index}}
                    {{set b=data.index=index+1}}
                    {{else}}
                    {{set c=data["index"] = 3}}
                    {{/if}}
                    {{include 'list1' data}}
                    {{/each}}
                    {{/if}}
                </div>
            </script>
        </div>
        <div class="box-third">
            <div class=" preview-markdown">

            </div>
            <div style="width: 100%;">

            </div>
            <div class="box-nav" style="background: #fff;">
                <ul class="api template-nav-menu">
                    <script type="text/html" id="template-nav-menu-tpl">
                        <!--                            {{if target_type == "api" || target_type == "folder" || (target_type == "example" && is_doc == 0) }}-->
                        {{if request.description}}
                        <li class="cur nav-btn" data-id="0" style="display: block"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                接口说明</a></li>
                        <li class="nav-btn" data-id="1"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                基本信息</a></li>
                        {{else}}
                        <li class="nav-btn" data-id="0" style="display: none"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                接口说明</a></li>
                        <li class="cur nav-btn" data-id="1"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                基本信息</a></li>
                        {{/if}}
                        <!--                            {{/if}}-->
                        {{if request.header.parameter.length > 0 || request.query.parameter.length > 0 ||
                        request.resful.parameter.length > 0 || request.body.parameter.length>0 || request.body.raw !=''}}
                        <li class="nav-btn" data-id="2" style="display: block"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                请求参数</a></li>
                        {{else}}
                        <li class="nav-btn" data-id="2" style="display: none"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                请求参数</a></li>
                        {{/if}}
                        <ul>
                            {{if request.header.parameter.length > 0}}
                            <li class="nav-btn" data-id="3" style="display: block"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    header参数及说明</a></li>
                            {{else}}
                            <li class="nav-btn" data-id="3" style="display: none"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    header参数及说明</a></li>
                            {{/if}}
                            {{if request.query.parameter.length > 0}}
                            <li class="nav-btn" data-id="4" style="display: block"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    query参数及说明</a></li>
                            {{else}}
                            <li class="nav-btn" data-id="4" style="display: none"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    query参数及说明</a></li>
                            {{/if}}
                            {{if request.resful.parameter.length > 0}}
                            <li class="nav-btn" data-id="5" style="display: block"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    路径参数及说明</a></li>
                            {{else}}
                            <li class="nav-btn" data-id="5" style="display: none"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    路径参数及说明</a></li>
                            {{/if}}

                            {{if request?.auth?.type && request?.auth?.type != 'noauth'}}
                            <li class="nav-btn" data-id="6" style="display: block"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    认证及说明</a></li>
                            {{else}}
                            <li class="nav-btn" data-id="6" style="display: none"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    认证及说明</a></li>
                            {{/if}}
                            {{if request.body.parameter.length>0 || request.body.raw !='' }}
                            <li class="nav-btn" data-id="7" style="display: block"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    body参数及说明</a></li>
                            {{else}}
                            <li class="nav-btn" data-id="7" style="display: none"><a href="javascript:;">
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                    body参数及说明</a></li>
                            {{/if}}
                            <!--                        <li class="nav-btn" data-id="6"><a href="javascript:;">预执行脚本</a></li>-->
                            <!--                        <li class="nav-btn" data-id="7"><a href="javascript:;">后执行脚本</a></li>-->

                        </ul>
                        {{if response.success.raw || response.success.parameter.length > 0 || response.error.raw ||
                        response.error.parameter.length > 0}}
                        <li class="nav-btn" data-id="8" style="display: block"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                响应示例</a></li>
                        {{else}}
                        <li class="nav-btn" data-id="8" style="display:none"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                响应示例</a></li>
                        <!-- <ul>-->
                        <!--                            {{if response.success.raw || response.success.parameter.length > 0}}-->
                        <!--                            <li class="nav-btn" data-id="9"><a href="javascript:;">成功响应示例</a></li>-->
                        <!--                            {{/if}}-->
                        <!---->
                        <!--                            {{if response.error.raw || response.error.parameter.length > 0}}-->
                        <!--                            <li class="nav-btn" data-id="10"><a href="javascript:;">失败响应示例</a></li>-->
                        <!--                            {{/if}}-->
                        <!--                        </ul> -->
                        {{/if}}
                    </script>
                </ul>

                <ul class="folder">
                    <li class="cur nav-folder-btn" data-id="0"><a href="javascript:;">
                            <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                            目录说明</a></li>
                    <li class="nav-folder-btn" data-id="1"><a href="javascript:;">
                            <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                            公共参数</a></li>
                    <ul>
                        <li class="nav-folder-btn" data-id="2"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                header参数及说明</a></li>
                        <li class="nav-folder-btn" data-id="3"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                query参数及说明</a></li>
                        <li class="nav-folder-btn" data-id="4"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                body参数及说明</a></li>
                        <li class="nav-folder-btn" data-id="5"><a href="javascript:;">
                                <img src="https://img.cdn.apipost.cn/v6/docs/img/arrow.svg" alt="">
                                认证及说明</a></li>
                        <!-- <li class="nav-folder-btn" data-id="4"><a href="javascript:;">预执行脚本</a></li>-->
                        <!-- <li class="nav-folder-btn" data-id="5"><a href="javascript:;">后执行脚本</a></li>-->
                    </ul>
                </ul>

            </div>
            <script type="text/html" id="template-example-doc-tpl">
                <h2 class="top" style="display: block">
                    <div style="display: flex;align-items: center;">
                        <span>{{name}}</span>
                        {{if target_type != 'folder'}}
                        <!-- <button title="复制当前文档/接口数据到剪贴板" class="CopyCurrentData" data-clipboard-action="copy" data-clipboard-text="" data-target_id="{{local_target_id}}">
                          <img src="https://img.cdn.apipost.cn/v6/docs/img/copy.svg" alt="" style="margin-right:2px">
                          复制接口
                          <a  style="margin-left:2px" href="https://wiki.apipost.cn/document/00091641-1e36-490d-9caf-3e47cd38bcde/0b622ce8-68c0-4a00-88ba-287bdae336ad" target="_blank" rel="noopener noreferrer">
                            <img style="cursor: pointer;" src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg"  alt="">
                          </a>
                        </button> -->
                        <!-- <button class="opneApis" data-target_id="{{local_target_id}}">
                          <img src="https://img.cdn.apipost.cn/v6/docs/img/open.svg" alt="">
                          在工作台打开
                        </button> -->
                        <!-- <a href="https://wiki.apipost.cn/document/00091641-1e36-490d-9caf-3e47cd38bcde/0b622ce8-68c0-4a00-88ba-287bdae336ad" title="什么是复制接口？" target="_blank"><i class="fa fa-question-circle-o" aria-hidden="true"></i></a> -->
                        {{/if}}
                    </div>
                    <span class="metadata">创建人：{{create_users.create_user}} &nbsp;&nbsp;&nbsp;&nbsp; 最后更新：{{create_users.update_user}} &nbsp;&nbsp;&nbsp;&nbsp;更新时间：{{@dateFormat(update_dtime * 1000,'yyyy-MM-dd hh:mm:ss')}}</span>
                </h2>
                {{if target_type == 'folder'}}
                <h3 class="title" style="{{request.description ? 'visibility: visible;':'visibility:hidden;height:0;margin:0;'}}" ><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/book.svg" alt="">
                    </a> 目录说明 <i class="fa fa-angle-down"></i></h3>
                {{if request.description}}
                <div class="editor-preview desc markdown-section">
                    {{@marked(request.description)}}
                </div>
                {{/if}}
                {{else}}
                <h3 class="title" style="{{request.description ? 'visibility: visible;':'visibility:hidden;height:0;margin:0;'}}" ><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/book.svg" alt="">
                    </a> 接口说明 <i class="fa fa-angle-down"></i></h3>
                {{if request.description}}
                <div class="editor-preview desc markdown-section">
                    {{@marked(request.description)}}
                </div>
                {{/if}}
                {{/if}}
                {{if (target_type == 'example' && is_doc == '0') || target_type == 'api'}}
                <h3 class="title"><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/info.svg" alt="">
                    </a> 基本信息 <i class="fa fa-angle-down"></i></h3>
                <ul class="editor-preview-info">
                    <li><strong>接口状态：</strong> <code class="span" style="color: {{markColor}};">{{markName}}</code></li>
                    <li><strong>接口URL：</strong> <code class="span">{{request.url ? request.url : 'url为空...'}}</code>
                    </li>
                    <li><strong>请求方式：</strong> <code class="span">{{method}}</code></li>
                    <li><strong>Content-Type：</strong> <code class="span">{{request.body.mode}}</code></li>
                </ul>

                <h3 class="title" style="{{request.header.parameter.length > 0 || request.query.parameter.length > 0 || request.resful.parameter.length > 0 || request.body.parameter.length>0 ||request.body.raw !='' || (request?.auth?.type && request?.auth?.type != 'noauth') ? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/globals.svg" alt="">
                    </a> 请求参数 <i class="fa fa-angle-down"></i></h3>
                {{if request.header.parameter.length > 0 || request.query.parameter.length > 0 || request.resful.parameter.length > 0 || request.body.parameter.length>0 ||request.body.raw !='' || (request?.auth?.type && request?.auth?.type != 'noauth')}}
                <div class="markdown-request">
                    <h4 class="title" style="{{request.header.parameter.length > 0? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> Header参数及说明</h4>
                    {{if request.header.parameter.length > 0}}
                    <div>
                        <table>
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <th>参数类型</th>
                                <th>是否必填</th>
                                <th>参数描述</th>
                            </tr>
                            {{each request.header.parameter item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value }}
                                    {{/if}}
                                </td>
                                <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td>
                                <td>{{item.not_null == "1" ? '是' : '否'}}</td>
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}

                    <h4 class="title" style="{{request.query.parameter.length > 0 ? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> Query参数及说明</h4>
                    {{if request.query.parameter.length > 0}}
                    <div>
                        <table>
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <th>参数类型</th>
                                <th>是否必填</th>
                                <th>参数描述</th>
                            </tr>

                            {{each request.query.parameter item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value }}
                                    {{/if}}
                                </td>
                                <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td>
                                <td>{{item.not_null == "1" ? '是' : '否'}}</td>
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}

                    <h4 class="title" style="{{request.resful.parameter.length ? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> 路径参数及说明</h4>
                    {{if request.resful.parameter.length > 0}}
                    <div>
                        <table>
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <!--
                                <th>参数类型</th>
                                <th>是否必填</th>
                                -->
                                <th>参数描述</th>
                            </tr>

                            {{each request.resful.parameter item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value }}
                                    {{/if}}
                                </td>
                                <!--
                                <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td>
                                <td>{{item.not_null == "1" ? '是' : '否'}}</td>
                                -->
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}

                    <h4 class="title" style="{{ request?.auth.type && request?.auth.type != 'noauth' ? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> 认证及说明</h4>
                    {{if request?.auth.type && request?.auth.type != 'noauth'}}
                    <div>
                        {{if request?.auth?.type == 'kv'}}
                        <table class="auth">
                            <tr>
                                <td>认证类型：私密键值对</td>
                                <td> 键： {{request?.auth?.kv?.key}}</td>
                                <td> 值：{{request?.auth?.kv?.value}}</td>
                            </tr>
                        </table>
                        {{/if}}
                        {{if request.auth.type == 'basic'}}
                        <table class="auth">
                            <tr>
                                <td>认证类型：Basic auth认证</td>
                                <td>用户名： {{request?.auth?.basic?.username}}</td>
                                <td>密码： {{request?.auth?.basic?.password}}</td>
                            </tr>
                        </table>
                        {{/if}}
                        {{if request?.auth?.type == 'bearer'}}
                        <table class="auth">
                            <tr>
                                <td>认证类型：Bearer auth认证</td>
                                <td>Token：{{request?.auth?.bearer?.key}}</td>
                            </tr>
                        </table>
                        {{/if}}
                    </div>
                    {{/if}}

                    <h4 class="title" style="{{request.body.parameter.length > 0 || request.body.raw !='' ? 'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> body参数及说明</h4>
                    {{if request.body.parameter.length>0 ||request.body.raw !='' }}
                    {{if request.body.mode == 'form-data' || request.body.mode == 'multipart/form-data' ||
                    request.body.mode =='application/x-www-form-urlencoded' || request.body.mode=="urlencoded"}}
                    <div>
                        <table>
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <th>参数类型</th>
                                <th>是否必填</th>
                                <th>参数描述</th>
                            </tr>
                            {{if request.body.parameter.length > 0}}
                            {{each request.body.parameter item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value }}
                                    {{/if}}
                                </td>
                                <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td>
                                <td>{{item.not_null == "1" ? '是' : '否'}}</td>
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                            {{else}}
                            <tr>
                                <td colspan="5" style="text-align:center">暂无数据</td>
                            </tr>
                            {{/if}}
                        </table>
                    </div>
                    {{else}}
                    <div class="editor-preview">
                        <input type="hidden" id="request_body_raw_editor_input" value="{{request.body.raw}}">
                        <pre id="request_body_raw_editor_json"><code class="hljs json">{{request.body.raw}}</code></pre>

                        <!-- <pre><code class="hljs json">{{request.body.raw}}</code></pre> -->
                    </div>
                    {{if request.body.raw_para.length > 0}}
                    <h4><a href="javascript:;" class="maodian"></a> 字段描述</h4>
                    <table>
                        <tr>
                            <th>参数名</th>
                            <th>示例值</th>
                            <th>参数类型</th>
                            <!-- <th>是否必填</th> -->
                            <th>参数描述</th>
                        </tr>
                        {{each request.body.raw_para item}}
                        {{if item.key}}
                        <tr>
                            <td>{{@keyFormat(item.key)}}</td>
                            <td>{{item.value == '' ? '-' : item.value }}</td>
                            <td>{{item.field_type}}</td>
                            <!-- <td>{{item.not_null == "1" ? '是' : '否'}}</td> -->
                            <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                        </tr>
                        {{/if}}
                        {{/each}}
                    </table>
                    {{/if}}
                    {{/if}}
                    <!--                    {{if request.event.pre_script != ''}}-->
                    <!--                    <h4 class="title"><a href="javascript:;" class="maodian"></a> 预执行脚本</h4>-->
                    <!--                    <div class="editor-preview">-->
                    <!--                        <pre><code class="hljs">{{request.event.pre_script}}</code></pre>-->
                    <!--                    </div>-->
                    <!--                    {{/if}}-->
                    <!--                    {{if request.event.test != ''}}-->
                    <!--                    <h4 class="title"><a href="javascript:;" class="maodian"></a> 后执行脚本</h4>-->
                    <!--                    <div class="editor-preview">-->
                    <!--                        <pre><code class="hljs">{{request.event.test}}</code></pre>-->
                    <!--                    </div>-->
                    <!--                    {{/if}}-->

                    {{/if}}
                </div>
                {{/if}}
                <!--respond-->

                <h3 class="title" style="{{response.success.raw || response.success.parameter.length > 0 || response.error.raw || response.error.parameter.length > 0 ? 'visibility: visible;':'visibility: hidden'}}"><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/globals.svg" alt="">
                    </a> 响应示例<i class="fa fa-angle-down"></i></h3>
                {{if response.success.raw || response.success.parameter.length > 0 || response.error.raw || response.error.parameter.length > 0}}
                <div class="markdown-response">
                    {{if response.success.raw || response.success.parameter.length > 0}}
                    <h4 ><a href="javascript:;" class="maodian"></a> 成功响应示例</h4>
                    <div class="editor-preview">
                        <input type="hidden" id="response_success_editor_input" value="{{response.success.raw}}">
                        <pre id="response_success_editor_json"><code class=" json">{{response.success.raw}}</code></pre>
                    </div>
                    {{if response.success.parameter.length > 0}}
                    <h4><a href="javascript:;" class="maodian"></a> 字段描述</h4>
                    <table class="response-parameter">
                        <tr>
                            <th>参数名</th>
                            <th>示例值</th>
                            <th>参数类型</th>
                            <th>参数描述</th>
                        </tr>
                        {{each response.success.parameter item}}
                        <tr>
                            <td>{{@keyFormat(item.key)}}</td>
                            <td>{{item.value == '' ? '-' : item.value }}</td>
                            <td>{{item.field_type}}</td>
                            <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                        </tr>
                        {{/each}}
                    </table>
                    {{/if}}
                    {{/if}}
                    {{if response.error.raw || response.error.parameter.length > 0}}
                    <h4 ><a href="javascript:;" class="maodian"></a> 失败响应示例</h4>
                    <div class="editor-preview">
                        <input type="hidden" id="response_error_editor_input" value="{{response.error.raw}}">
                        <pre id="response_error_editor_json">
                            <code class="hljs json">{{response.error.raw}}</code>
                        </pre>
                    </div>
                    {{if response.error.parameter.length > 0}}
                    <h4><a href="javascript:;" class="maodian"></a> 字段描述</h4>
                    <table class="response-parameter">
                        <tr>
                            <th>参数名</th>
                            <th>示例值</th>
                            <th>参数类型</th>
                            <th>参数描述</th>
                        </tr>
                        {{each response.error.parameter item}}
                        <tr>
                            <td>{{@keyFormat(item.key)}}</td>
                            <td>{{item.value == '' ? '-' : item.value }}</td>
                            <td>{{item.field_type}}</td>
                            <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                        </tr>
                        {{/each}}
                    </table>
                    {{/if}}
                    {{/if}}
                </div>
                {{/if}}
                {{else if target_type == 'folder'}}
                <h3 class="title"><a href="javascript:;" class="maodian">
                        <img src="https://img.cdn.apipost.cn/v6/docs/img/globals.svg" alt="">
                    </a>公共参数<i class="fa fa-angle-down"></i></h3>
                <div class="markdown-request">
                    <h4 class="title" style="{{ request.header.length > 0 ?'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> Header参数及说明</h4>
                    {{if request.header.length > 0}}
                    <div>
                        <table class="header">
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <!-- <th>参数类型</th> -->
                                <th>参数描述</th>
                            </tr>
                            {{each request.header item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value}}
                                    {{/if}}
                                </td>
                                <!-- <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td> -->
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}
                    <h4 class="title" style="{{ request.query.length > 0 ?'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> Query参数及说明</h4>
                    {{if request.query.length > 0}}
                    <div>
                        <table class="query">
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <!-- <th>参数类型</th> -->
                                <th>参数描述</th>
                            </tr>
                            {{each request.query item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value}}
                                    {{/if}}
                                </td>
                                <!-- <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td> -->
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}
                    <h4 class="title" style="{{ request.body.length > 0 ?'visibility:visible':'visibility:hidden;height:0;margin:0;'}}"><a href="javascript:;" class="maodian"></a> Body参数及说明</h4>
                    {{if request.body.length > 0}}
                    <div>
                        <table class="body">
                            <tr>
                                <th>参数名</th>
                                <th>示例值</th>
                                <!-- <th>参数类型</th> -->
                                <th>参数描述</th>
                            </tr>
                            {{each request.body item}}
                            {{if item.key}}
                            <tr>
                                <td>
                                    {{if item.key_var}}
                                    {{item.key_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.key}} 生成
                                    </div>
                                    {{else}}
                                    {{item.key}}
                                    {{/if}}
                                </td>
                                <td>
                                    {{if item.value_var}}
                                    {{item.value_var}}
                                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                                    <div class="vars_title">
                                        变量{{item.value}} 生成
                                    </div>
                                    {{else}}
                                    {{item.value == '' ? '-' : item.value}}
                                    {{/if}}
                                </td>
                                <!-- <td>{{item.field_type == "" || item.field_type == "[]"? (typeof item.value) :
                                    item.field_type}}
                                </td> -->
                                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
                            </tr>
                            {{/if}}
                            {{/each}}
                        </table>
                    </div>
                    {{/if}}
                    {{if request?.auth?.type != 'noauth' && request?.auth?.type}}
                    <h4 class="title">认证及说明</h4>
                    {{if request?.auth?.type == 'kv'}}
                    <table class="auth">
                        <tr>
                            <td>认证类型：私密键值对</td>
                            <td>键：{{request?.auth?.kv?.key}}</td>
                            <td>值：{{request?.auth?.kv?.value}}</td>
                        </tr>
                    </table>
                    {{/if}}
                    {{if request.auth.type == 'basic'}}
                    <table class="auth">
                        <tr>
                            <td>认证类型：Basic auth认证</td>
                            <td>用户名：{{request?.auth?.basic?.username}}</td>
                            <td>密码：{{request?.auth?.basic?.password}}</td>
                        </tr>
                    </table>
                    {{/if}}
                    {{if request?.auth?.type == 'bearer'}}
                    <table class="auth">
                        <tr>
                            <td>认证类型：Bearer auth认证</td>
                            <td>Token：{{request?.auth?.bearer?.key}}</td>
                        </tr>
                    </table>
                    {{/if}}
                    {{/if}}
                </div>
                <!--respond-->
                {{/if}}
                <div class="footer" style="text-align: center;margin: 35px 0;height: 50px">本文档由 <a href="https://www.apipost.cn/" target="_blank" style="color:#3a86ff">APIPOST接口调试与管理工具</a> 生成</div>
            </script>
        </div>
    </div>
</div>
<script type="text/html" id="golbal-env-tpl">
    <h2 class="top">
        <span>全局参数</span>
        <span class="metadata">
            创建时间：{{@dateFormat(create_dtime * 1000,'yyyy-MM-dd hh:mm:ss')}}
            {{if expire_time != -1}}
                <span style="color: #f44336; margin-left: 15px; font-weight: bold;"> 过期时间： {{@dateFormat(expire_time * 1000,'yyyy-MM-dd hh:mm:ss')}}</span>
            {{/if}}
        </span>

    </h2>
    <div class="editor-preview desc">
    <!-- <p>本文档是Lumen-Base的接口文档，以下为当前项目下的公共参数。</p> -->
    </div>

    <h3 class="title">
        <a href="javascript:;" class="maodian">
            <img src="https://img.cdn.apipost.cn/v6/docs/img/globals.svg" alt="">
        </a>
        全局参数
        {{if vars?.request?.header?.length > 0 || vars?.request?.query?.length > 0 || vars?.request?.body?.length > 0 || vars?.auth?.type != 'noauth'}}
        <i class="fa fa-angle-down"></i>
        {{/if}}
    </h3>
    {{if vars?.request?.header?.length > 0 || vars?.request?.query?.length > 0 || vars?.request?.body?.length > 0 || vars?.auth?.type != 'noauth'}}
    <div>
        {{if vars.request.header.length > 0}}
        <h4>Header参数及说明</h4>
        <table>
            <tr>
                <th>参数名</th>
                <th>参数值</th>
                <th>参数描述</th>
            </tr>
            {{each vars.request.header item}}
            <tr>
                <td>
                    {{if item.key_var}}
                    {{item.key_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.key}} 生成
                    </div>
                    {{else}}
                    {{item.key}}
                    {{/if}}
                </td>
                <td>
                    {{if item.value_var}}
                    {{item.value_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.value}} 生成
                    </div>
                    {{else}}
                    {{item.value == '' ? '-' : item.value }}
                    {{/if}}
                </td>
                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
            </tr>
            {{/each}}
        </table>
        {{/if}}

        {{if vars.request.query.length > 0}}
        <h4>Query参数及说明</h4>
        <table>
            <tr>
                <th>参数名</th>
                <th>参数值</th>
                <th>参数描述</th>
            </tr>

            {{each vars.request.query item}}
            <tr>
                <td>
                    {{if item.key_var}}
                    {{item.key_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.key}} 生成
                    </div>
                    {{else}}
                    {{item.key}}
                    {{/if}}
                </td>
                <td>
                    {{if item.value_var}}
                    {{item.value_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.value}} 生成
                    </div>
                    {{else}}
                    {{item.value == '' ? '-' : item.value }}
                    {{/if}}
                </td>
                <td>
                    <pre>{{item.description == '' ? '-' : item.description }}</pre>
                </td>
            </tr>
            {{/each}}
        </table>
        {{/if}}

        {{if vars?.request?.body?.length > 0}}
        <h4>Body参数及说明</h4>
        <table>
            <tr>
                <th>参数名</th>
                <th>参数值</th>
                <th>参数描述</th>
            </tr>
            {{each vars?.request?.body item}}
            <tr>
                <td>
                    {{if item.key_var}}
                    {{item.key_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.key}} 生成
                    </div>
                    {{else}}
                    {{item.key}}
                    {{/if}}
                </td>
                <td>
                    {{if item.value_var}}
                    {{item.value_var}}
                    <img src="https://img.cdn.apipost.cn/v6/docs/img/vars.svg" alt="">
                    <div class="vars_title">
                        变量{{item.value}} 生成
                    </div>
                    {{else}}
                    {{item.value == '' ? '-' : item.value }}
                    {{/if}}
                </td>
                <td><pre>{{item.description == '' ? '-' : item.description }}</pre></td>
            </tr>
            {{/each}}
        </table>
        {{/if}}
        {{if vars?.auth?.type != 'noauth'}}
        <h4>认证及说明</h4>
        {{if vars?.auth?.type == 'kv'}}
        <table>
            <tr>
                <td>认证类型：私密键值对</td>
                <td>键：{{vars?.auth?.kv?.key}}</td>
                <td>值：{{vars?.auth?.kv?.value}}</td>
            </tr>
        </table>
        {{/if}}
        {{if vars.auth.type == 'basic'}}
        <table>
            <tr>
                <td>认证类型：Basic auth认证</td>
                <td>用户名：{{vars?.auth?.basic?.username}}</td>
                <td>密码：{{vars?.auth?.basic?.password}}</td>
            </tr>
        </table>
        {{/if}}
        {{if vars?.auth?.type == 'bearer'}}
        <table>
            <tr>
                <td>认证类型：Bearer auth认证</td>
                <td>Token：{{vars?.auth?.bearer?.key}}</td>
            </tr>
        </table>
        {{/if}}
        {{/if}}
        <!--        {{if vars.script.pre_script != ""}}-->
        <!--        <h4 class="title"><a href="javascript:;" class="maodian"></a> 预执行脚本</h4>-->
        <!--        <div class="editor-preview">-->
        <!--            <pre><code class="hljs">{{vars.script.pre_script}}</code></pre>-->
        <!--        </div>-->
        <!--        {{/if}}-->
        <!--        {{if vars.script.test != "" }}-->
        <!--        <h4 class="title"><a href="javascript:;" class="maodian"></a> 后执行脚本</h4>-->
        <!--        <div class="editor-preview">-->
        <!--            <pre><code class="hljs">{{vars.script.test}}</code></pre>-->
        <!--        </div>-->
        <!--        {{/if}}-->
    </div>
    {{else}}
    <div style="text-align: center;display: block"><img src="https://img.cdn.apipost.cn/v6/docs/img/emptyglobals.svg" style="width: 100px;margin:20px auto 20px;">暂无参数</div>
    {{/if}}

    <div class="footer" style="text-align: center;margin: 35px 24px;height: 50px;">本文档由 <a href="https://www.apipost.cn/" target="_blank" style="color:#3a86ff">APIPOST接口调试与管理工具</a> 生成</div>
</script>
<script type="text/html" id="doc-head-tpl">
    <div class="export">

    </div>
    <div class="user_photo">
        <img src="{{portrait}}"alt="">
    </div>
</script>
<script type="text/html" id="project-name-tpl">
    <img src="https://img.cdn.apipost.cn/v6/docs/img/project.svg" alt="">
    {{project_name}}
</script>
<script>
    template.defaults.imports.marked = function (md) {
        marked.setOptions({
            renderer: new marked.Renderer(),
            highlight: function (code) {
                return hljs.highlight('javascript', code).value;
            },
            breaks: true
        });
        return marked(md).replace(/<pre>/g, "<pre class='hljs javascript'>");
    }
    function dateFormat(date, format) {
        date = new Date(date);
        var map = {
            "M": date.getMonth() + 1, //月份
            "d": date.getDate(), //日
            "h": date.getHours(), //小时
            "m": date.getMinutes(), //分
            "s": date.getSeconds(), //秒
            "q": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
            var v = map[t];
            if (v !== undefined) {
                if (all.length > 1) {
                    v = '0' + v;
                    v = v.substr(v.length - 2);
                }
                return v;
            } else if (t === 'y') {
                return (date.getFullYear() + '').substr(4 - all.length);
            }
            return all;
        });
        return format;
    };
    template.defaults.imports.dateFormat = dateFormat;
    function dragControllerDiv(resize, left, mid, box) {
        for (let i = 0; i < resize.length; i++) {
            // 鼠标按下事件
            resize[i].onmousedown = function (e) {
                //颜色改变提醒
                resize[i].style.borderColor = "#9d9d9d";
                var startX = e.clientX;
                resize[i].left = resize[i].offsetLeft;
                // 鼠标拖动事件
                document.onmousemove = function (e) {
                    var endX = e.clientX;
                    var moveLen = resize[i].left + (endX - startX); // （endx-startx）=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
                    var maxT = box[i].clientWidth - resize[i].offsetWidth; // 容器宽度 - 左边区域的宽度 = 右边区域的宽度

                    if (moveLen < 300) moveLen = 300; // 左边区域的最小宽度为32px
                    if (moveLen > maxT - 150) moveLen = maxT - 150; //右边区域最小宽度为150px

                    resize[i].style.left = moveLen; // 设置左侧区域的宽度
                    $('.target.title').css({ maxWidth: moveLen + 'px' })
                    for (let j = 0; j < left.length; j++) {
                        left[j].style.width = moveLen + "px";
                        mid[j].style.width = box[i].clientWidth - moveLen - 10 + "px";
                    }
                };
                // 鼠标松开事件
                document.onmouseup = function (evt) {
                    //颜色恢复
                    resize[i].style.borderColor = "#d6d6d6";
                    document.onmousemove = null;
                    document.onmouseup = null;
                    resize[i].releaseCapture && resize[i].releaseCapture(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
                };
                resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
                return false;
            };
        }
    }
    function keyFormat(params) {
        let arr = params.split('.');
        let str = ''
        for (let i = 0; i < arr.length - 1; i++) {
            str += `<span style="color:#999">${arr[i]}.</span>`
        }
        str += arr[arr.length - 1];
        return str;
    }
    template.defaults.imports.keyFormat = keyFormat;
    let timer = null
    let arr = {"id":189259,"project_id":2094832,"name":"Lumen-Base","url":"c90e33696369e323","salt":"1c190f3cc2db2ffd","password":"666999","env_id":"-1","create_time":1641806227,"target_id":2094832,"target_type":"project","expire_days":-1,"expire_time":-1,"project_name":"Lumen-Base","portrait":"https:\/\/img.cdn.apipost.cn\/user\/935094\/09e37f25db210a16.png","nick_name":"Scarecrow","publisher":"Scarecrow","pub_name":"Lumen-Base","project":{"vars":{"request":{"header":[],"query":[{"is_checked":"1","key":"randstr","value":"123456","description":"随机字符串"},{"is_checked":"1","key":"platform","value":"h5","description":"平台"}],"cookie":[],"body":[]},"script":{"pre_script":"let ScarecrowTool = {\n    md5:function(str) {\n        return CryptoJS.MD5(str).toString();\n    },\n    rtrim:function (str,char) {\n        var pos = str.lastIndexOf(char);\n        var sonstr = str.substr(0,pos);\n        return sonstr;\n    }\n};\n\n\/**\n * 创建签名\n * @param param\n *\/\nfunction createSign(param) {\n    \/\/ if (!(param instanceof Object)) {\n    \/\/     return false;\n    \/\/ }\n    \n    if (!param.randstr) {\n        return false;\n    }\n\n    if (!param.platform) {\n        return false;\n    }\n    delete param.sign;\n    let tempParam = {};\n    for (let i in param) {\n        if (param[i] != \"\" && param[i] != undefined) {\n            tempParam[i] = param[i];\n        }\n    }\n\n    let tempData = {};\n    for (let i in tempParam) {\n        let token = ScarecrowTool.md5(i +\"_\" +tempParam[i]);\n        tempData[token] = i;\n    }\n\n    let str = \"\";\n    Object.keys(tempData).sort().map(key => {\n        str += tempData[key] + \"=\" + key + \"&\";\n    })\n    str = ScarecrowTool.rtrim(str, '&');\n\n    let baseStr = apt.variables.get(\"APP_SOCKET_KEY\");\n    str = baseStr + str + baseStr;\n    let sign = ScarecrowTool.md5(str);\n    return {\n        sign:sign,\n        param:param\n    }\n}\n\nvar timeStr =  parseInt(Date.parse(new Date())\/1000);\napt.setRequestQuery(\"timestamp\",timeStr,false);\nvar params = Object.assign(request.request_querys??{}, request.request_bodys??{});\nparams.timestamp = timeStr;\nsignInfo = createSign(params);\nif (signInfo !== false) {\n    token = signInfo?.sign;\n    apt.setRequestQuery(\"sign\", token);\n} else {\n    console.error(\"签名错误\")\n}\n\n\/\/如果需要后面所有的脚本中可以使用本页面的数据或者方法只需要将方法或者变量挂载在$上，例如\n$.createSign = createSign","test":""},"variable":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"methods":["POST","GET","PUT","PATCH","DELETE","COPY","HEAD","OPTIONS","LINK","UNLINK","PURGE","LOCK","UNLOCK","PROPFIND","VIEW"],"mark":[{"key":"developing","name":"开发中","color":"#3A86FF"},{"key":"complated","name":"已完成","color":"#2BA58F"},{"key":"modifying","name":"需修改","color":"#EC4646"}]}},"children":[{"local_target_id":"72271e63-13d8-46d9-bdfc-c4e50be16cd7","local_parent_id":"0","name":"BackHome","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":0,"create_dtime":1616639819,"update_dtime":1649836995,"target_id":22472051,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"description":"Back端模块","header":[{"is_checked":"1","key":"SC-API-TOKEN","value":"{{SC-API-TOKEN-BACK}}","description":"用户登录Token","key_var":"","value_var":"eyJpdiI6ImxQR2dERVBBdm1qODBYeVo2UVFcL1wvUT09IiwidmFsdWUiOiJjRXpNOVBINStZZHRJNW5sYmpVYVRjcDhwT2VoZzduNFFWb3FLSjQrdXV2bG5hVUpsd2JMbTRWcHpQUHBXQlpqIiwibWFjIjoiYWRjNmY2NjZkZmQzNGE1NmMzNTQ4MjY3NDI0MWZlZDJhYjUyYmY5OTA2MjU4Y2IyNDZlM2RiN2RkOGUwNjNjNiJ9"}],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"script":{"pre_script":"","test":"if (response.raw.type!=\"json\") {\n    console.error(\"This result not is json\");\n    return false;\n}\n\nvar jsonData = response.json;\nif (jsonData.code == -2) {\n    let data = {\n        userName:apt.variables.get(\"BACK_USER_NAME\"),\n        userPwd: apt.variables.get(\"BACK_USER_PWD\"),\n        randstr: \"123456\",\n        platform: \"pc\",\n        timestamp: parseInt(Date.parse(new Date())\/1000)\n    };\n    \n    data.sign = $.createSign(data).sign\n    $.ajax({\n    \t\"url\":apt.variables.get(\"BACK_HOST\")+\"\/login\",\n    \t\"method\":\"POST\",\n\t\t\"dataType\":\"JSON\",\n    \t\"async\":false,\n    \t\"content-type\":\"appicateion-json\",\n    \t\"data\":data,\n    \t\"success\":function(response){\n\t\t\tconsole.log(response)\n    \t     if (response.status == \"YES\") {\n    \t       if (response.data.token) {\n                    apt.variables.set(\"SC-API-TOKEN-BACK\", response.data.token);\n                    console.log(\"触发BACK了自动重新登录\")\n                }\n    \t     } else {\n    \t         console.log(\"Try auto login fail.\")\n    \t     }\n    \t},\n    \t\"error\":function(e) {\n    \t    console.log(e)\n    \t}\n    });\n};"},"children":[{"local_target_id":"398d2cc3-c14d-4b2d-b8d5-943fba428997","local_parent_id":"72271e63-13d8-46d9-bdfc-c4e50be16cd7","name":"菜单","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":0,"create_dtime":1616639819,"update_dtime":1641795080,"target_id":22472052,"create_users":{"create_user":"Scarecrow","update_user":""},"request":{"description":"","header":[],"query":[],"body":[],"auth":[]},"script":{"pre_script":"","test":""},"children":[{"local_target_id":"26b9c66b-0208-4f62-a9a9-1f7a0f03da6d","local_parent_id":"985a207b-0d9a-413b-9b43-24eadeb7d437","name":"获取菜单列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885421,"target_id":22528620,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getmenulist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"name","value":"菜单二","not_null":0,"field_type":[],"description":"模糊搜索菜单名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"page","value":"1","not_null":0,"field_type":[],"description":"分页","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"limit","value":"10","not_null":0,"field_type":[],"description":"当前页数据条数","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"total\": 1,\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"id\": 2,\n\t\t\t\t\"menu_type\": 1,\n\t\t\t\t\"parent_id\": 1,\n\t\t\t\t\"name\": \"测试修改菜单二\",\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"key_val\": \"\",\n\t\t\t\t\"url\": \"\",\n\t\t\t\t\"icon\": \"\",\n\t\t\t\t\"include_str\": \"\",\n\t\t\t\t\"sort\": 1,\n\t\t\t\t\"create_time\": 1611400334,\n\t\t\t\t\"update_time\": 1611401790,\n\t\t\t\t\"status\": 1,\n\t\t\t\t\"is_can_distribution\": 1,\n\t\t\t\t\"depth\": \"|2|1|\",\n\t\t\t\t\"parentName\": \"测试创建菜单\",\n\t\t\t\t\"menu_type_str\": \"PC\",\n\t\t\t\t\"createTimeStr\": \"2021-01-23 19:12:14\",\n\t\t\t\t\"updateTimeStr\": \"2021-01-23 19:36:30\",\n\t\t\t\t\"functionNum\": 2\n\t\t\t}\n\t\t],\n\t\t\"limit\": 10,\n\t\t\"page\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"数据总条数","is_checked":1,"key":"data.total","type":"Text","field_type":"Number","value":"1"},{"description":"数据列表","is_checked":1,"key":"data.list","type":"Text","field_type":"Object","value":""},{"description":"菜单ID","is_checked":1,"key":"data.list.id","type":"Text","field_type":"Number","value":"2"},{"description":"菜单所属平台 1:PC端","is_checked":1,"key":"data.list.menu_type","type":"Text","field_type":"Number","value":"1"},{"description":"父级菜单Id","is_checked":1,"key":"data.list.parent_id","type":"Text","field_type":"Number","value":"1"},{"description":"菜单名称","is_checked":1,"key":"data.list.name","type":"Text","field_type":"String","value":"测试修改菜单二"},{"description":"菜单描述","is_checked":1,"key":"data.list.description","type":"Text","field_type":"Object","value":""},{"description":"keyVal","is_checked":1,"key":"data.list.key_val","type":"Text","field_type":"Object","value":""},{"description":"路径","is_checked":1,"key":"data.list.url","type":"Text","field_type":"Object","value":""},{"description":"图标","is_checked":1,"key":"data.list.icon","type":"Text","field_type":"Object","value":""},{"description":"自定义信息字符串","is_checked":1,"key":"data.list.include_str","type":"Text","field_type":"Object","value":""},{"description":"排序","is_checked":1,"key":"data.list.sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.list.create_time","type":"Text","field_type":"Number","value":"1611400334"},{"description":"最后更新时间","is_checked":1,"key":"data.list.update_time","type":"Text","field_type":"Number","value":"1611401790"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.list.status","type":"Text","field_type":"Number","value":"1"},{"description":"是否允许分配 0：否 1：是","is_checked":1,"key":"data.list.is_can_distribution","type":"Text","field_type":"Number","value":"1"},{"description":"深度","is_checked":1,"key":"data.list.depth","type":"Text","field_type":"String","value":"|2|1|"},{"description":"父级菜单名称","is_checked":1,"key":"data.list.parentName","type":"Text","field_type":"String","value":"测试创建菜单"},{"description":"菜单所属平台名称","is_checked":1,"key":"data.list.menu_type_str","type":"Text","field_type":"String","value":"PC"},{"description":"创建时间格式化","is_checked":1,"key":"data.list.createTimeStr","type":"Text","field_type":"Number","value":"2021-01-23 19:12:14"},{"description":"最后更新时间格式化","is_checked":1,"key":"data.list.updateTimeStr","type":"Text","field_type":"Number","value":"2021-01-23 19:36:30"},{"description":"该菜单下面功能的数量","is_checked":1,"key":"data.list.functionNum","type":"Text","field_type":"Number","value":"2"},{"description":"分页条数","is_checked":1,"key":"data.limit","type":"Text","field_type":"Number","value":"10"},{"description":"分页","is_checked":1,"key":"data.page","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"f0cc5068-4fe0-4353-ba7d-2f2eb25ef2c7","local_parent_id":"0aac1fa8-cf47-449b-aa66-e64e03d112ce","name":"创建菜单","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885436,"target_id":22528642,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/addmenu","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"parentId","value":"0","not_null":0,"field_type":[],"description":"父级ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"name","value":"测试创建菜单","not_null":0,"field_type":[],"description":"菜单名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"description","value":"测试创建菜单描述","not_null":0,"field_type":[],"description":"菜单描述","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"keyVal","value":"KEY1","not_null":0,"field_type":[],"description":"菜单前端关键字KEY","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"url","value":"\/test\/url","not_null":0,"field_type":[],"description":"菜单路径(不是后端请求路由，前端使用的地址)","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"icon","value":"\/test\/icon.png","not_null":0,"field_type":[],"description":"菜单图标地址","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"include_str","value":"test","not_null":0,"field_type":[],"description":"自定义信息字符串","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"sort","value":"1","not_null":0,"field_type":[],"description":"菜单排序","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"创建成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"创建成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"6ad8d978-6082-4422-8e8e-b13264021902","local_parent_id":"09b59d13-d774-4f7a-82d6-46da9dfb98ba","name":"编辑菜单","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885445,"target_id":22528653,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/editmenu","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"parentId","value":"0","not_null":0,"field_type":[],"description":"父级ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"name","value":"测试创建菜单","not_null":0,"field_type":[],"description":"菜单名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"description","value":"测试创建菜单描述","not_null":0,"field_type":[],"description":"菜单描述","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"keyVal","value":"KEY1","not_null":0,"field_type":[],"description":"菜单前端关键字KEY","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"url","value":"\/test\/url","not_null":0,"field_type":[],"description":"菜单路径(不是后端请求路由，前端使用的地址)","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"icon","value":"\/test\/icon.png","not_null":0,"field_type":[],"description":"菜单图标地址","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"include_str","value":"test","not_null":0,"field_type":[],"description":"自定义信息字符串","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"sort","value":"1","not_null":0,"field_type":[],"description":"菜单排序","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"id","value":"1","not_null":0,"field_type":[],"description":"菜单ID","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"修改成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"修改成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"be094fb6-239b-47b0-a4bf-8ee3c0f41732","local_parent_id":"dab208e3-5f8b-4090-b97c-60344b741af8","name":"删除菜单","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885451,"target_id":22528690,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/deletemenu","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"菜单ID","is_checked":1,"key":"id","type":"Text","not_null":"1","field_type":"","value":"4","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"删除成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"删除成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"4cf1605d-b657-4114-ab52-7c8d506ab495","local_parent_id":"be84c466-9bc5-4d6e-b7b0-e4d490d19556","name":"获取菜单树状列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885837,"target_id":22529236,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getmenutree","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"1\": {\n\t\t\t\"id\": 1,\n\t\t\t\"menu_type\": 1,\n\t\t\t\"parent_id\": 0,\n\t\t\t\"name\": \"测试创建菜单\",\n\t\t\t\"description\": \"测试创建菜单描述\",\n\t\t\t\"key_val\": \"KEY1\",\n\t\t\t\"url\": \"\/test\/url\",\n\t\t\t\"icon\": \"\/test\/icon.png\",\n\t\t\t\"include_str\": \"\",\n\t\t\t\"sort\": 1,\n\t\t\t\"create_time\": 1611400220,\n\t\t\t\"update_time\": 1641805875,\n\t\t\t\"status\": 1,\n\t\t\t\"is_can_distribution\": 1,\n\t\t\t\"depth\": \"|1|\",\n\t\t\t\"childList\": {\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\"menu_type\": 1,\n\t\t\t\t\t\"parent_id\": 1,\n\t\t\t\t\t\"name\": \"测试修改菜单二\",\n\t\t\t\t\t\"description\": \"\",\n\t\t\t\t\t\"key_val\": \"\",\n\t\t\t\t\t\"url\": \"\",\n\t\t\t\t\t\"icon\": \"\",\n\t\t\t\t\t\"include_str\": \"\",\n\t\t\t\t\t\"sort\": 1,\n\t\t\t\t\t\"create_time\": 1611400334,\n\t\t\t\t\t\"update_time\": 1611401790,\n\t\t\t\t\t\"status\": 1,\n\t\t\t\t\t\"is_can_distribution\": 1,\n\t\t\t\t\t\"depth\": \"|2|1|\",\n\t\t\t\t\t\"childList\": []\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"对象第一个子对象","is_checked":1,"key":"data.1","type":"Text","field_type":"Object","value":""},{"description":"菜单ID","is_checked":1,"key":"data.1.id","type":"Text","field_type":"Number","value":"1"},{"description":"菜单所属平台 1:PC端","is_checked":1,"key":"data.1.menu_type","type":"Text","field_type":"Number","value":"1"},{"description":"父级菜单Id","is_checked":1,"key":"data.1.parent_id","type":"Text","field_type":"Number","value":"0"},{"description":"菜单名称","is_checked":1,"key":"data.1.name","type":"Text","field_type":"String","value":"测试创建菜单"},{"description":"菜单描述","is_checked":1,"key":"data.1.description","type":"Text","field_type":"String","value":"测试创建菜单描述"},{"description":"keyVal","is_checked":1,"key":"data.1.key_val","type":"Text","field_type":"String","value":"KEY1"},{"description":"路径","is_checked":1,"key":"data.1.url","type":"Text","field_type":"String","value":"\/test\/url"},{"description":"图标","is_checked":1,"key":"data.1.icon","type":"Text","field_type":"String","value":"\/test\/icon.png"},{"description":"自定义信息字符串","is_checked":1,"key":"data.1.include_str","type":"Text","field_type":"Object","value":""},{"description":"排序","is_checked":1,"key":"data.1.sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.1.create_time","type":"Text","field_type":"Number","value":"1611400220"},{"description":"更新时间","is_checked":1,"key":"data.1.update_time","type":"Text","field_type":"Number","value":"1641805875"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.1.status","type":"Text","field_type":"Number","value":"1"},{"description":"是否允许分配 0：否 1：是","is_checked":1,"key":"data.1.is_can_distribution","type":"Text","field_type":"Number","value":"1"},{"description":"深度","is_checked":1,"key":"data.1.depth","type":"Text","field_type":"String","value":"|1|"},{"description":"子列表","is_checked":1,"key":"data.1.childList","type":"Text","field_type":"Object","value":""},{"description":"字列表的某个对象","is_checked":1,"key":"data.1.childList.2","type":"Text","field_type":"Object","value":""},{"description":"菜单ID","is_checked":1,"key":"data.1.childList.2.id","type":"Text","field_type":"Number","value":"2"},{"description":"菜单所属平台 1:PC端","is_checked":1,"key":"data.1.childList.2.menu_type","type":"Text","field_type":"Number","value":"1"},{"description":"父级菜单Id","is_checked":1,"key":"data.1.childList.2.parent_id","type":"Text","field_type":"Number","value":"1"},{"description":"菜单名称","is_checked":1,"key":"data.1.childList.2.name","type":"Text","field_type":"String","value":"测试修改菜单二"},{"description":"菜单描述","is_checked":1,"key":"data.1.childList.2.description","type":"Text","field_type":"Object","value":""},{"description":"keyVal","is_checked":1,"key":"data.1.childList.2.key_val","type":"Text","field_type":"Object","value":""},{"description":"路径","is_checked":1,"key":"data.1.childList.2.url","type":"Text","field_type":"Object","value":""},{"description":"图标","is_checked":1,"key":"data.1.childList.2.icon","type":"Text","field_type":"Object","value":""},{"description":"自定义信息字符串","is_checked":1,"key":"data.1.childList.2.include_str","type":"Text","field_type":"Object","value":""},{"description":"排序","is_checked":1,"key":"data.1.childList.2.sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.1.childList.2.create_time","type":"Text","field_type":"Number","value":"1611400334"},{"description":"更新时间","is_checked":1,"key":"data.1.childList.2.update_time","type":"Text","field_type":"Number","value":"1611401790"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.1.childList.2.status","type":"Text","field_type":"Number","value":"1"},{"description":"是否允许分配 0：否 1：是","is_checked":1,"key":"data.1.childList.2.is_can_distribution","type":"Text","field_type":"Number","value":"1"},{"description":"深度","is_checked":1,"key":"data.1.childList.2.depth","type":"Text","field_type":"String","value":"|2|1|"},{"description":"子列表","is_checked":1,"key":"data.1.childList.2.childList","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"f9480b51-4c89-4a17-b37f-76b60cd743c0","local_parent_id":"ff51801e-ed56-4ac6-9808-353b9524275a","name":"创建功能","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885856,"target_id":22529268,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/addfunction","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"id","value":"1","not_null":0,"field_type":[],"description":"菜单ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"functionName","value":"测试功能","not_null":0,"field_type":[],"description":"功能名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"keyVal","value":"TEST_KEY","not_null":0,"field_type":[],"description":"前端使用关键字KEY","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"创建成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"创建成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"ae97dbc7-d26e-4b13-86df-60b67c41831d","local_parent_id":"e75934dd-0b05-49fd-b925-59b67b74314a","name":"编辑功能","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885863,"target_id":22529275,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/editfunction","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"功能ID","is_checked":1,"key":"functionId","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""},{"description":"功能名称","is_checked":1,"key":"functionName","type":"Text","not_null":"1","field_type":"","value":"测试功能","key_var":"","value_var":""},{"description":"前端使用关键字KEY","is_checked":1,"key":"keyVal","type":"Text","not_null":"1","field_type":"","value":"TEST_KEY","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"编辑成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"编辑成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"7ddd1192-0c2f-4d34-8fbe-530fe8584779","local_parent_id":"399cf276-2407-478c-888f-a58f4a4d577d","name":"删除功能","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641886197,"target_id":22530260,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/deletefunction","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"功能ID","is_checked":1,"key":"functionId","type":"Text","not_null":"1","field_type":"","value":"4","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"删除成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"删除成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"6fc360c8-0b78-4348-a3c4-0fdf5a74d186","local_parent_id":"232a9b76-0b5a-4fc1-8179-8a547063ed88","name":"获取功能详情","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641886252,"target_id":22530322,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getfunction","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"functionId","value":"2","not_null":0,"field_type":[],"description":"功能ID","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 2,\n\t\t\"menu_id\": 2,\n\t\t\"name\": \"测试功能2\",\n\t\t\"key_val\": \"1\",\n\t\t\"create_time\": 1611403220,\n\t\t\"update_time\": 1611403220,\n\t\t\"status\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"功能ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"2"},{"description":"功能对应菜单的ID","is_checked":1,"key":"data.menu_id","type":"Text","field_type":"Number","value":"2"},{"description":"功能名称","is_checked":1,"key":"data.name","type":"Text","field_type":"String","value":"测试功能2"},{"description":"keyVal","is_checked":1,"key":"data.key_val","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.create_time","type":"Text","field_type":"Number","value":"1611403220"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1611403220"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.status","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"53776ca8-0b33-4472-877c-caa17de68392","local_parent_id":"1f518251-0a0f-4240-8811-29647b1ff463","name":"获取功能列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887756,"target_id":22532123,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getfunctionlist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"id","value":"1","not_null":0,"field_type":[],"description":"菜单ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"page","value":"1","not_null":0,"field_type":[],"description":"分页","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"limit","value":"10","not_null":0,"field_type":[],"description":"当前页数据条数","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"total\": 3,\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"id\": 3,\n\t\t\t\t\"menu_id\": 1,\n\t\t\t\t\"name\": \"测试功能\",\n\t\t\t\t\"key_val\": \"TEST_KEY\",\n\t\t\t\t\"create_time\": 1640069719,\n\t\t\t\t\"update_time\": 1641805926,\n\t\t\t\t\"status\": 1\n\t\t\t}\n\t\t],\n\t\t\"limit\": 10,\n\t\t\"page\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"数据总条数","is_checked":1,"key":"data.total","type":"Text","field_type":"Number","value":"3"},{"description":"数据列表","is_checked":1,"key":"data.list","type":"Text","field_type":"Object","value":""},{"description":"功能ID","is_checked":1,"key":"data.list[0].id","type":"Text","field_type":"Number","value":"3"},{"description":"菜单ID","is_checked":1,"key":"data.list[0].menu_id","type":"Text","field_type":"Number","value":"1"},{"description":"功能名称","is_checked":1,"key":"data.list[0].name","type":"Text","field_type":"String","value":"测试功能"},{"description":"keyVal","is_checked":1,"key":"data.list[0].key_val","type":"Text","field_type":"String","value":"TEST_KEY"},{"description":"创建时间","is_checked":1,"key":"data.list[0].create_time","type":"Text","field_type":"Number","value":"1640069719"},{"description":"最后更新时间","is_checked":1,"key":"data.list[0].update_time","type":"Text","field_type":"Number","value":"1641805926"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.list[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"分页条数","is_checked":1,"key":"data.limit","type":"Text","field_type":"Number","value":"10"},{"description":"分页","is_checked":1,"key":"data.page","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"995f7f83-b301-4f85-b453-e5d22e1544c3","local_parent_id":"6b9bd9fc-e70e-4090-a4d5-fdbd5ded6d08","name":"添加权限路由","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887520,"target_id":22532185,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/addapiroute","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"id","value":"1","not_null":0,"field_type":[],"description":"菜单ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"apiRouteName","value":"测试路由名称","not_null":0,"field_type":[],"description":"路由名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"apiRouteUrl","value":"\/test\/url","not_null":0,"field_type":[],"description":"路由地址","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"description","value":"测试路由描述","not_null":0,"field_type":[],"description":"测试路由描述","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"创建成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"创建成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"67ff3b53-545f-4146-b141-0d36d6d8578e","local_parent_id":"ca9d76f5-7030-4c4c-b8d3-78ab3ccf142a","name":"编辑权限路由","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887545,"target_id":22532290,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/editapiroute","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限路由ID","is_checked":1,"key":"apiRouteId","type":"Text","not_null":"1","field_type":"","value":"4","key_var":"","value_var":""},{"description":"路由名称","is_checked":1,"key":"apiRouteName","type":"Text","not_null":"1","field_type":"","value":"测试路由名称","key_var":"","value_var":""},{"description":"路由地址","is_checked":1,"key":"apiRouteUrl","type":"Text","not_null":"1","field_type":"","value":"\/test\/url1","key_var":"","value_var":""},{"description":"测试路由描述","is_checked":1,"key":"description","type":"Text","not_null":"1","field_type":"","value":"测试路由描述","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"编辑成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"编辑成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"09f4182f-b841-4ff7-8213-9ee299b8b477","local_parent_id":"def50532-55e4-4bd5-b314-42ceead27b2f","name":"删除权限路由","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887553,"target_id":22532296,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/deleteapiroute","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限路由ID","is_checked":1,"key":"apiRouteId","type":"Text","not_null":"1","field_type":"","value":"4","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"删除成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"删除成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"b4b33e0c-7ccf-4850-8759-fdf022dd3626","local_parent_id":"2de98f7d-26c0-4b91-85ef-34ee1ba3ce12","name":"获取权限路由详情","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887779,"target_id":22532334,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getapiroute","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限路由ID","is_checked":1,"key":"apiRouteId","type":"Text","not_null":"1","field_type":"","value":"5","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 5,\n\t\t\"menu_id\": 1,\n\t\t\"name\": \"测试路由名称\",\n\t\t\"description\": \"测试路由描述\",\n\t\t\"url\": \"\/test\/url\",\n\t\t\"create_time\": 1640597671,\n\t\t\"update_time\": 1640597671,\n\t\t\"status\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"路由ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"5"},{"description":"菜单的ID","is_checked":1,"key":"data.menu_id","type":"Text","field_type":"Number","value":"1"},{"description":"路由名称","is_checked":1,"key":"data.name","type":"Text","field_type":"String","value":"测试路由名称"},{"description":"路由描述","is_checked":1,"key":"data.description","type":"Text","field_type":"String","value":"测试路由描述"},{"description":"URL","is_checked":1,"key":"data.url","type":"Text","field_type":"String","value":"\/test\/url"},{"description":"创建时间","is_checked":1,"key":"data.create_time","type":"Text","field_type":"Number","value":"1640597671"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1640597671"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.status","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"b2154f84-9d84-4ad5-a17f-3241b36a9f89","local_parent_id":"ea3221f8-f0e8-45bc-bacf-6c77edc541ac","name":"获取权限路由列表","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641887786,"target_id":22533078,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/menu\/getapiroutelist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"menuId","value":"1","not_null":0,"field_type":[],"description":"菜单ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"page","value":"1","not_null":0,"field_type":[],"description":"分页","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"limit","value":"10","not_null":0,"field_type":[],"description":"分页数据","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"total\": 1,\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"id\": 3,\n\t\t\t\t\"menu_id\": 1,\n\t\t\t\t\"name\": \"测试路由名称\",\n\t\t\t\t\"description\": \"测试路由描述\",\n\t\t\t\t\"url\": \"\/test\/url\",\n\t\t\t\t\"create_time\": 1640072379,\n\t\t\t\t\"update_time\": 1640072379,\n\t\t\t\t\"status\": 1\n\t\t\t}\n\t\t],\n\t\t\"limit\": 10,\n\t\t\"page\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"数据总条数","is_checked":1,"key":"data.total","type":"Text","field_type":"Number","value":"1"},{"description":"数据列表","is_checked":1,"key":"data.list","type":"Text","field_type":"Object","value":""},{"description":"功能ID","is_checked":1,"key":"data.list[0].id","type":"Text","field_type":"Number","value":"3"},{"description":"菜单ID","is_checked":1,"key":"data.list[0].menu_id","type":"Text","field_type":"Number","value":"1"},{"description":"功能名称","is_checked":1,"key":"data.list[0].name","type":"Text","field_type":"String","value":"测试路由名称"},{"description":"菜单描述","is_checked":1,"key":"data.list[0].description","type":"Text","field_type":"String","value":"测试路由描述"},{"description":"路径","is_checked":1,"key":"data.list[0].url","type":"Text","field_type":"String","value":"\/test\/url"},{"description":"创建时间","is_checked":1,"key":"data.list[0].create_time","type":"Text","field_type":"Number","value":"1640072379"},{"description":"最后更新时间","is_checked":1,"key":"data.list[0].update_time","type":"Text","field_type":"Number","value":"1640072379"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.list[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"分页条数","is_checked":1,"key":"data.limit","type":"Text","field_type":"Number","value":"10"},{"description":"分页","is_checked":1,"key":"data.page","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"5e614568-784e-41c3-82bc-fbedf38ff2dd","local_parent_id":"72271e63-13d8-46d9-bdfc-c4e50be16cd7","name":"登录管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641795080,"target_id":22472068,"create_users":{"create_user":"Scarecrow","update_user":""},"request":{"description":"","header":[],"query":[],"body":[],"auth":[]},"script":{"pre_script":"","test":""},"children":[{"local_target_id":"72050040-db7d-42ce-893a-a5842fd378e1","local_parent_id":"6fdd6f5a-5e41-47f9-8c78-a6ab3876d5b3","name":"更新用户TOKEN","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884787,"target_id":22526868,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/login\/update_token","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-BACK\",  jsonData.data.token);\n            console.log(\"更新TOKEN成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"更新TOKEN成功\",\n\t\"data\": {\n\t\t\"token\": \"eyJpdiI6ImRhYnNqODEyZWFiVUZuUjZlbnVpZVE9PSIsInZhbHVlIjoicnhvd0tDSlh6UlByTGdrNXpMUlNkSEEvVi9VZ0lSSWFYblJJb0s3bzh3ejFRa2I3clp1cEpOYzhuSHoyQVdJViIsIm1hYyI6IjcyNWJjNGQ4NDljYmQ3ZmI4MDcyYTUyYzVjNTMzYWM1NWQ0ZjNmZTI0OWUwZmM4ZDMzZWY5NWVkZDVmYzM1NmMifQ==\",\n\t\t\"expire_time\": 1641808905,\n\t\t\"update_time\": 1641805305,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"更新TOKEN成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"更新后的用户Token串","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6ImRhYnNqODEyZWFiVUZuUjZlbnVpZVE9PSIsInZhbHVlIjoicnhvd0tDSlh6UlByTGdrNXpMUlNkSEEvVi9VZ0lSSWFYblJJb0s3bzh3ejFRa2I3clp1cEpOYzhuSHoyQVdJViIsIm1hYyI6IjcyNWJjNGQ4NDljYmQ3ZmI4MDcyYTUyYzVjNTMzYWM1NWQ0ZjNmZTI0OWUwZmM4ZDMzZWY5NWVkZDVmYzM1NmMifQ=="},{"description":"token的过期时间","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641808905"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641805305"},{"description":"token剩余调用API次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"接口调用源 1:Back 2:App","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"4d6f831b-e09a-4bdb-9aa1-be28d7657509","local_parent_id":"ef162ff5-ad8f-4da6-82bd-fba1c7b6e99c","name":"退出登录","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885187,"target_id":22528376,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/login\/login_out","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"退出登录成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"退出登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"3de00273-6a93-4cd0-9182-62a180c5c022","local_parent_id":"03a832e2-69c5-45b8-8653-bd75d063d3ca","name":"获取当前用户信息","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641885169,"target_id":22528356,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/login\/get_user_info","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 1,\n\t\t\"nike_name\": \"Scarecrow\",\n\t\t\"username\": \"18888888888\",\n\t\t\"is_supper_admin\": 1,\n\t\t\"token\": \"68c12c97b76e97a854737d591a493477\",\n\t\t\"expire_time\": 1641888068,\n\t\t\"update_time\": 1641884468,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"tokenInfo\": {\n\t\t\t\"uid\": 1,\n\t\t\t\"token\": \"68c12c97b76e97a854737d591a493477\",\n\t\t\t\"expire_time\": 1641888068,\n\t\t\t\"update_time\": 1641885139,\n\t\t\t\"call_num\": 2000,\n\t\t\t\"is_invalid\": 0\n\t\t}\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"角色ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"1"},{"description":"用户昵称","is_checked":1,"key":"data.nike_name","type":"Text","field_type":"String","value":"Scarecrow"},{"description":"用户登录账号","is_checked":1,"key":"data.username","type":"Text","field_type":"Number","value":"18888888888"},{"description":"是否是超级管理员","is_checked":1,"key":"data.is_supper_admin","type":"Text","field_type":"Number","value":"1"},{"description":"更新后的用户Token串","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"68c12c97b76e97a854737d591a493477"},{"description":"token的过期时间","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641888068"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641884468"},{"description":"token剩余调用API次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"用户Token信息","is_checked":1,"key":"data.tokenInfo","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.tokenInfo.uid","type":"Text","field_type":"Number","value":"1"},{"description":"当前用户的实际TOKEN","is_checked":1,"key":"data.tokenInfo.token","type":"Text","field_type":"String","value":"68c12c97b76e97a854737d591a493477"},{"description":"当前Token过期时间","is_checked":1,"key":"data.tokenInfo.expire_time","type":"Text","field_type":"Number","value":"1641888068"},{"description":"当前Token更新时间","is_checked":1,"key":"data.tokenInfo.update_time","type":"Text","field_type":"Number","value":"1641885139"},{"description":"当前Token剩余调用API权限次数","is_checked":1,"key":"data.tokenInfo.call_num","type":"Text","field_type":"Number","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.tokenInfo.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"124d0426-914c-4089-aae1-3cca2772b70c","local_parent_id":"72271e63-13d8-46d9-bdfc-c4e50be16cd7","name":"角色权限管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":2,"create_dtime":1616639819,"update_dtime":1641795080,"target_id":22472072,"create_users":{"create_user":"Scarecrow","update_user":""},"request":{"description":"","header":[],"query":[],"body":[],"auth":[]},"script":{"pre_script":"","test":""},"children":[{"local_target_id":"9544cc15-74f0-427e-9176-13e977c60e0e","local_parent_id":"5558ec14-1c5f-47c7-b199-8b2252286564","name":"创建权限","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883722,"target_id":22525356,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/createauth","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"name","value":"测试创建权限名称","not_null":0,"field_type":[],"description":"权限名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"description","value":"测试创建权限名称描述","not_null":0,"field_type":[],"description":"权限描述","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"sort","value":"1","not_null":0,"field_type":[],"description":"排序","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"创建成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"创建成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"40772903-176d-408e-84fe-5eb561aa6cec","local_parent_id":"5a7a0291-9598-4b6e-8507-ca302c86fb37","name":"编辑权限","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883733,"target_id":22525385,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/editauth","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限名称","is_checked":1,"key":"name","type":"Text","not_null":"1","field_type":"","value":"测试创建权限名称","key_var":"","value_var":""},{"description":"权限描述","is_checked":1,"key":"description","type":"Text","not_null":"1","field_type":"","value":"测试创建权限名称描述1","key_var":"","value_var":""},{"description":"排序","is_checked":1,"key":"sort","type":"Text","not_null":"1","field_type":"","value":"1","key_var":"","value_var":""},{"description":"权限ID","is_checked":1,"key":"id","type":"Text","not_null":"1","field_type":"","value":"2","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"编辑成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"编辑成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"e13cd778-ceb8-4601-b517-f9bf609c2580","local_parent_id":"29e6de7d-9604-4969-992d-f27af7886637","name":"删除权限","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883743,"target_id":22525391,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/deleteauth","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限ID","is_checked":1,"key":"id","type":"Text","not_null":"1","field_type":"","value":"2","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"删除成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"删除成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"5c1f5a67-bd98-44b8-993c-86c05c653d0a","local_parent_id":"c7955e07-07b0-4a21-85a8-6f25afa1e019","name":"获取权限详情","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884162,"target_id":22525501,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getauth","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"权限ID","is_checked":1,"key":"id","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 3,\n\t\t\"name\": \"测试创建权限名称\",\n\t\t\"description\": \"测试创建权限名称描述\",\n\t\t\"sort\": 1,\n\t\t\"create_time\": 1640080096,\n\t\t\"update_time\": 1640080096,\n\t\t\"status\": 1,\n\t\t\"createTimeStr\": \"2021-12-21 17:48:16\",\n\t\t\"updateTimeStr\": \"2021-12-21 17:48:16\"\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"权限ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"3"},{"description":"权限名称","is_checked":1,"key":"data.name","type":"Text","field_type":"String","value":"测试创建权限名称"},{"description":"权限描述","is_checked":1,"key":"data.description","type":"Text","field_type":"String","value":"测试创建权限名称描述"},{"description":"排序","is_checked":1,"key":"data.sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.create_time","type":"Text","field_type":"Number","value":"1640080096"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1640080096"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.status","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间格式化","is_checked":1,"key":"data.createTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"最后更新时间格式化","is_checked":1,"key":"data.updateTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"70b53feb-73e1-4d8d-8e3b-571df9b769f8","local_parent_id":"89aa7f0b-6e6e-4406-94c3-001e1426a3a3","name":"获取权限列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884019,"target_id":22525708,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getauthlist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": 3,\n\t\t\t\"name\": \"测试创建权限名称\",\n\t\t\t\"description\": \"测试创建权限名称描述\",\n\t\t\t\"sort\": 1,\n\t\t\t\"create_time\": 1640080096,\n\t\t\t\"update_time\": 1640080096,\n\t\t\t\"status\": 1,\n\t\t\t\"createTimeStr\": \"2021-12-21 17:48:16\",\n\t\t\t\"updateTimeStr\": \"2021-12-21 17:48:16\"\n\t\t}\n\t],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"权限ID","is_checked":1,"key":"data[0].id","type":"Text","field_type":"Number","value":"3"},{"description":"权限名称","is_checked":1,"key":"data[0].name","type":"Text","field_type":"String","value":"测试创建权限名称"},{"description":"权限描述","is_checked":1,"key":"data[0].description","type":"Text","field_type":"String","value":"测试创建权限名称描述"},{"description":"排序","is_checked":1,"key":"data[0].sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data[0].create_time","type":"Text","field_type":"Number","value":"1640080096"},{"description":"最后更新时间","is_checked":1,"key":"data[0].update_time","type":"Text","field_type":"Integer","value":"1640080096"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间格式化","is_checked":1,"key":"data[0].createTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"最后更新时间格式化","is_checked":1,"key":"data[0].updateTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"1ac656ab-2ef2-414b-8a3b-0fa0cf006031","local_parent_id":"70d1184e-63aa-4b9f-b275-50e8eaf4b9c8","name":"获取权限列表分页","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884384,"target_id":22525904,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getauthlistpage","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"page","value":"1","not_null":0,"field_type":[],"description":"分页","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"limit","value":"10","not_null":0,"field_type":[],"description":"当前页数据条数","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"total\": 1,\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"id\": 3,\n\t\t\t\t\"name\": \"测试创建权限名称\",\n\t\t\t\t\"description\": \"测试创建权限名称描述\",\n\t\t\t\t\"sort\": 1,\n\t\t\t\t\"create_time\": 1640080096,\n\t\t\t\t\"update_time\": 1640080096,\n\t\t\t\t\"status\": 1,\n\t\t\t\t\"createTimeStr\": \"2021-12-21 17:48:16\",\n\t\t\t\t\"updateTimeStr\": \"2021-12-21 17:48:16\"\n\t\t\t}\n\t\t],\n\t\t\"limit\": 10,\n\t\t\"page\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"数据总条数","is_checked":1,"key":"data.total","type":"Text","field_type":"Number","value":"1"},{"description":"数据列表","is_checked":1,"key":"data.list","type":"Text","field_type":"Object","value":""},{"description":"权限ID","is_checked":1,"key":"data.list[0].id","type":"Text","field_type":"Number","value":"3"},{"description":"权限名称","is_checked":1,"key":"data.list[0].name","type":"Text","field_type":"String","value":"测试创建权限名称"},{"description":"权限描述","is_checked":1,"key":"data.list[0].description","type":"Text","field_type":"String","value":"测试创建权限名称描述"},{"description":"排序","is_checked":1,"key":"data.list[0].sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.list[0].create_time","type":"Text","field_type":"Number","value":"1640080096"},{"description":"最后更新时间","is_checked":1,"key":"data.list[0].update_time","type":"Text","field_type":"Number","value":"1640080096"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.list[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间格式化","is_checked":1,"key":"data.list[0].createTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"最后更新时间格式化","is_checked":1,"key":"data.list[0].updateTimeStr","type":"Text","field_type":"Number","value":"2021-12-21 17:48:16"},{"description":"分页条数","is_checked":1,"key":"data.limit","type":"Text","field_type":"Number","value":"10"},{"description":"分页","is_checked":1,"key":"data.page","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"26ec6a3f-cd56-40d3-9408-a6cc7eec4a56","local_parent_id":"3dab5e7e-0e02-4c17-93ce-d756c760dc0d","name":"创建角色","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884099,"target_id":22525928,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/createrole","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"roleName","value":"测试创建角色名称","not_null":0,"field_type":[],"description":"角色名称","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"description","value":"角色描述","not_null":0,"field_type":[],"description":"角色描述","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"sort","value":"1","not_null":0,"field_type":[],"description":"排序","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"创建成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"创建成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"822d4e6d-13bf-424d-a63d-9cd601cd063e","local_parent_id":"5d9951ff-9e7f-429c-88fc-c8b95bce81a2","name":"编辑角色","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884111,"target_id":22525936,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/editrole","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"角色名称","is_checked":1,"key":"roleName","type":"Text","not_null":"1","field_type":"","value":"测试编辑角色名称","key_var":"","value_var":""},{"description":"角色描述","is_checked":1,"key":"description","type":"Text","not_null":"1","field_type":"","value":"角色描述","key_var":"","value_var":""},{"description":"排序","is_checked":1,"key":"sort","type":"Text","not_null":"1","field_type":"","value":"1","key_var":"","value_var":""},{"description":"角色ID","is_checked":1,"key":"roleId","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"编辑成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"编辑成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"aeb78a4c-d914-47fa-8023-94d9ba6ae063","local_parent_id":"39003fc0-c768-401b-9d00-6f94adf3b772","name":"获取角色详情","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884152,"target_id":22525974,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getrole","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"角色ID","is_checked":1,"key":"id","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 3,\n\t\t\"name\": \"测试编辑角色名称\",\n\t\t\"description\": \"角色描述\",\n\t\t\"sort\": 1,\n\t\t\"create_time\": 1640155298,\n\t\t\"update_time\": 1641805634,\n\t\t\"status\": 1,\n\t\t\"createTimeStr\": \"2021-12-22 14:41:38\",\n\t\t\"updateTimeStr\": \"2022-01-10 17:07:14\"\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"角色ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"3"},{"description":"角色名称","is_checked":1,"key":"data.name","type":"Text","field_type":"String","value":"测试编辑角色名称"},{"description":"角色描述","is_checked":1,"key":"data.description","type":"Text","field_type":"String","value":"角色描述"},{"description":"排序","is_checked":1,"key":"data.sort","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间","is_checked":1,"key":"data.create_time","type":"Text","field_type":"Number","value":"1640155298"},{"description":"最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641805634"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.status","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间格式化","is_checked":1,"key":"data.createTimeStr","type":"Text","field_type":"Number","value":"2021-12-22 14:41:38"},{"description":"最后更新时间格式化","is_checked":1,"key":"data.updateTimeStr","type":"Text","field_type":"Number","value":"2022-01-10 17:07:14"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"15c4b537-c3fe-4a60-8f2f-0271fa1d0573","local_parent_id":"24ffd64b-4b79-4ec1-aa56-1efde2f8fdb6","name":"删除角色","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884282,"target_id":22526007,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/deleterole","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"角色ID","is_checked":1,"key":"roleId","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"删除成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"删除成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"a05c4027-e13c-41c2-a209-ba00ac97b6eb","local_parent_id":"10d57e3e-2e47-441a-83fc-b563f0ec429d","name":"获取角色列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884533,"target_id":22526177,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getrolelist","description":"","auth":{"type":"noauth"},"body":{"mode":"form-data","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": 2,\n\t\t\t\"name\": \"测试角色二\",\n\t\t\t\"description\": \"\",\n\t\t\t\"sort\": 0,\n\t\t\t\"create_time\": 1611408240,\n\t\t\t\"update_time\": 1611408240,\n\t\t\t\"status\": 1\n\t\t}\n\t],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"角色ID","is_checked":1,"key":"data[0].id","type":"Text","field_type":"Number","value":"2"},{"description":"角色名称","is_checked":1,"key":"data[0].name","type":"Text","field_type":"String","value":"测试角色二"},{"description":"角色描述","is_checked":1,"key":"data[0].description","type":"Text","field_type":"Object","value":""},{"description":"排序","is_checked":1,"key":"data[0].sort","type":"Text","field_type":"Number","value":"0"},{"description":"创建时间","is_checked":1,"key":"data[0].create_time","type":"Text","field_type":"Number","value":"1611408240"},{"description":"最后更新时间","is_checked":1,"key":"data[0].update_time","type":"Text","field_type":"Integer","value":"1611408240"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"f8cbcd37-23b4-42ab-8d1a-701366b5ac39","local_parent_id":"0a3ffe12-10d8-470e-b33c-499a2de768cc","name":"获取角色列表分页","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884587,"target_id":22526618,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getrolelistpage","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"page","value":"1","not_null":0,"field_type":[],"description":"分页","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"limit","value":"10","not_null":0,"field_type":[],"description":"分页数据条数","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"total\": 3,\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"id\": 2,\n\t\t\t\t\"name\": \"测试角色二\",\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"sort\": 0,\n\t\t\t\t\"create_time\": 1611408240,\n\t\t\t\t\"update_time\": 1611408240,\n\t\t\t\t\"status\": 1,\n\t\t\t\t\"createTimeStr\": \"2021-01-23 21:24:00\",\n\t\t\t\t\"updateTimeStr\": \"2021-01-23 21:24:00\"\n\t\t\t}\n\t\t],\n\t\t\"limit\": 10,\n\t\t\"page\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"数据总条数","is_checked":1,"key":"data.total","type":"Text","field_type":"Number","value":"3"},{"description":"数据列表","is_checked":1,"key":"data.list","type":"Text","field_type":"Object","value":""},{"description":"角色ID","is_checked":1,"key":"data.list[0].id","type":"Text","field_type":"Number","value":"2"},{"description":"角色名称","is_checked":1,"key":"data.list[0].name","type":"Text","field_type":"String","value":"测试角色二"},{"description":"角色描述","is_checked":1,"key":"data.list[0].description","type":"Text","field_type":"Object","value":""},{"description":"排序","is_checked":1,"key":"data.list[0].sort","type":"Text","field_type":"Number","value":"0"},{"description":"创建时间","is_checked":1,"key":"data.list[0].create_time","type":"Text","field_type":"Number","value":"1611408240"},{"description":"最后更新时间","is_checked":1,"key":"data.list[0].update_time","type":"Text","field_type":"Number","value":"1611408240"},{"description":"状态 1:正常 9:删除","is_checked":1,"key":"data.list[0].status","type":"Text","field_type":"Number","value":"1"},{"description":"创建时间格式化","is_checked":1,"key":"data.list[0].createTimeStr","type":"Text","field_type":"Number","value":"2021-01-23 21:24:00"},{"description":"最后更新时间格式化","is_checked":1,"key":"data.list[0].updateTimeStr","type":"Text","field_type":"Number","value":"2021-01-23 21:24:00"},{"description":"分页条数","is_checked":1,"key":"data.limit","type":"Text","field_type":"Number","value":"10"},{"description":"分页","is_checked":1,"key":"data.page","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"df4e8ea8-f35b-448e-b8e1-2d43a0b93f29","local_parent_id":"ef98a567-7011-4771-905d-4326c987e4e3","name":"获取角色拥有的权限列表","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884603,"target_id":22526638,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getroleauthlist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"角色ID","is_checked":1,"key":"roleId","type":"Text","not_null":"1","field_type":"","value":"5","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"6b656d1c-c2ad-42d2-80bb-0e3d1c8e2dba","local_parent_id":"91f3a200-3c0d-4f90-891e-db5d3c8c11ea","name":"用户绑定角色","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884616,"target_id":22526646,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/rolebinduser?role_id=1&userId=1","description":"","auth":{"type":"noauth"},"body":{"mode":"form-data","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[{"description":"","is_checked":1,"key":"role_id","type":"Text","not_null":1,"field_type":"","value":"1","key_var":"","value_var":""},{"description":"","is_checked":1,"key":"userId","type":"Text","not_null":1,"field_type":"","value":"1","key_var":"","value_var":""}]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"绑定成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"绑定成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"69294e13-97ad-4cb2-9748-dbbe68041c89","local_parent_id":"69d27332-b1cd-4f70-aea9-93e55af6ebf4","name":"获取当前用户拥有的所有菜单","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884622,"target_id":22526658,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getuserallmenu","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"c77330c9-1a35-4641-b816-85d839c7ec1d","local_parent_id":"074003ee-52a7-466c-9ed7-3b9cd2a6f839","name":"获取某个权限对应的所有功能","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884681,"target_id":22526730,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/getauthtofunctionlist","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"auth_id","value":"1","not_null":0,"field_type":[],"description":"权限ID","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"idList\": [\n\t\t\t1\n\t\t]\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"功能ID列表","is_checked":1,"key":"data.idList","type":"Text","field_type":"Array","value":"[1,2,3]"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"579adb6a-6d2d-4ee5-a240-b11ef8b94c35","local_parent_id":"bcb210fb-d518-4c9a-b48c-d550b6449274","name":"权限绑定功能","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884719,"target_id":22526768,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/authbindfunction","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"is_checked":1,"type":"Text","key":"auth_id","value":"1","not_null":0,"field_type":[],"description":"权限ID","key_var":"","value_var":""},{"is_checked":1,"type":"Text","key":"func_id","value":"1","not_null":0,"field_type":[],"description":"功能ID","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"绑定成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"绑定成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"37f979f9-d68a-4278-8117-765879c967a3","local_parent_id":"eb77af03-1b76-4621-9390-2caaadcc3d02","name":"角色绑定权限","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641884727,"target_id":22526781,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/auth\/rolebindauth","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"角色ID","is_checked":1,"key":"role_id","type":"Text","not_null":"1","field_type":"","value":"3","key_var":"","value_var":""},{"description":"权限ID多个用逗号隔开","is_checked":1,"key":"auth_id","type":"Text","not_null":"1","field_type":"","value":"1","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\"status\":\"YES\",\"info\":\"绑定成功\",\"data\":[],\"code\":200}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"绑定成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"a19159ed-b901-4b6c-a9f2-39b597861381","local_parent_id":"51289ecf-2cb2-468a-b4fa-cf583fbc2619","name":"用户登录","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883601,"target_id":22525143,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/login","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"用户名","is_checked":1,"key":"userName","type":"Text","not_null":"1","field_type":"","value":"{{BACK_USER_NAME}}","key_var":"","value_var":"18888888888"},{"description":"用户密码","is_checked":1,"key":"userPwd","type":"Text","not_null":"1","field_type":"","value":"{{BACK_USER_PWD}}","key_var":"","value_var":"123456"}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-BACK\",  jsonData.data.token);\n            console.log(\"登录成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"登录成功\",\n\t\"data\": {\n\t\t\"uid\": 1,\n\t\t\"token\": \"eyJpdiI6IkpaMmJMcXIrYWZka1FrWktBbHVNQkE9PSIsInZhbHVlIjoidzNTZmIrY0RQbUpPNVlka2xjT2RiZ0Y1NXc0V01GckpjMDBlZ2dVOG1xN2NNc21aS3MzaHUxamp3THRjNSswbCIsIm1hYyI6ImY3Mzc3YjVlMzUyOWQ2OTc4OGQ5ZTljZWJiMmJhNmVlNjQwNGViYjI5YTNmZjgxOWM5MzI2NDE0MmI2NjY4OGQifQ==\",\n\t\t\"expire_time\": 1641808548,\n\t\t\"update_time\": 1641804948,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 1\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.uid","type":"Text","field_type":"Integer","value":"1"},{"description":"更新后的用户Token串","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6IkpaMmJMcXIrYWZka1FrWktBbHVNQkE9PSIsInZhbHVlIjoidzNTZmIrY0RQbUpPNVlka2xjT2RiZ0Y1NXc0V01GckpjMDBlZ2dVOG1xN2NNc21aS3MzaHUxamp3THRjNSswbCIsIm1hYyI6ImY3Mzc3YjVlMzUyOWQ2OTc4OGQ5ZTljZWJiMmJhNmVlNjQwNGViYjI5YTNmZjgxOWM5MzI2NDE0MmI2NjY4OGQifQ=="},{"description":"token的过期时间","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641808548"},{"description":"token最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641804948"},{"description":"token剩余调用API次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"接口调用源 1:Back 2:App","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"1"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"e2deec9f-7d74-44b2-b54b-db143cbbff33","local_parent_id":"733bd72a-119b-4957-a2a0-d9af4ac1fc16","name":"用户注册","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883583,"target_id":22525123,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{BACK_HOST}}\/login\/register","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"用户名","is_checked":1,"key":"userName","type":"Text","not_null":"1","field_type":"","value":"18996425467","key_var":"","value_var":""},{"description":"用户密码","is_checked":1,"key":"userPwd","type":"Text","not_null":"1","field_type":"","value":"{{BACK_USER_PWD}}","key_var":"","value_var":"123456"}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"Yes\",\n\t\"info\": \"注册成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"Yes"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"注册成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"fb1bdaac-055e-48a9-b5d4-e50c3c35382e","local_parent_id":"0","name":"AppHome","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1649837510,"target_id":22472093,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"description":"App端模块","header":[{"is_checked":"1","key":"SC-API-TOKEN","value":"{{SC-API-TOKEN-APP}}","description":"用户登录Token","key_var":"","value_var":""}],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"script":{"pre_script":"","test":"if (response.raw.type!=\"json\") {\r\n    console.error(\"This result not is json\");\r\n    return false;\r\n}\r\n\r\nvar jsonData = response.json;\r\nif (jsonData.code == -2) {\r\n    let data = {\r\n        userName:apt.variables.get(\"APP_USER_NAME\"),\r\n        userPwd: apt.variables.get(\"APP_USER_PWD\"),\r\n        randstr: \"123456\",\r\n        platform: \"pc\",\r\n        timestamp: parseInt(Date.parse(new Date())\/1000)\r\n    };\r\n    \r\n    data.sign = $.createSign(data).sign\r\n    $.ajax({\r\n    \t\"url\":apt.variables.get(\"APP_HOST\")+\"\/login\",\r\n    \t\"method\":\"POST\",\r\n\t\t\"dataType\":\"JSON\",\r\n    \t\"async\":false,\r\n    \t\"content-type\":\"appicateion-json\",\r\n    \t\"data\":data,\r\n    \t\"success\":function(response){\r\n\t\t\tconsole.log(response)\r\n    \t     if (response.status == \"YES\") {\r\n    \t       if (response.data.token) {\r\n                    apt.variables.set(\"SC-API-TOKEN-APP\", response.data.token);\r\n                    console.log(\"触发APP了自动重新登录\")\r\n                }\r\n    \t     } else {\r\n    \t         console.log(\"Try auto login fail.\")\r\n    \t     }\r\n    \t},\r\n    \t\"error\":function(e) {\r\n    \t    console.log(e)\r\n    \t}\r\n    });\r\n};"},"children":[{"local_target_id":"3af85f57-61c4-413d-9ee9-c1625d13e4d8","local_parent_id":"fb1bdaac-055e-48a9-b5d4-e50c3c35382e","name":"登录管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":0,"create_dtime":1616639819,"update_dtime":1641795080,"target_id":22472094,"create_users":{"create_user":"Scarecrow","update_user":""},"request":{"description":"","header":[],"query":[],"body":[],"auth":[]},"script":{"pre_script":"","test":""},"children":[{"local_target_id":"65e8e511-d1c9-4526-a8fb-5a1f01433ffe","local_parent_id":"40ae4c4b-80f3-459b-8a50-372c5d9be7d2","name":"更新用户TOKEN","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883537,"target_id":22525073,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{APP_HOST}}\/login\/update_token","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-APP\",  jsonData.data.token);\n            console.log(\"登录成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"更新TOKEN成功\",\n\t\"data\": {\n\t\t\"token\": \"eyJpdiI6IlYxWXN0K3RFZVlhV1dIUTFoYVJQUmc9PSIsInZhbHVlIjoiVnFia3Ayd2d1Q2lPWlF5ZEdwQUZjR1VCODRRajNOV2RDY0dxUUNSTnNQdjVtTXUydkYwd3J3L0doSDhhVHJpdSIsIm1hYyI6IjYyNDEwNTA4Mzk4OTlhY2RiYzM2OTUxZjZlYjlhM2M4NWVkOTY4YzA0YmRmZjhkOGQxMDMzZjQ1MDhkMDQ5YTgifQ==\",\n\t\t\"expire_time\": 1641876886,\n\t\t\"update_time\": 1641873286,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 2\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"更新TOKEN成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"更新后的用户Token串","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6IlYxWXN0K3RFZVlhV1dIUTFoYVJQUmc9PSIsInZhbHVlIjoiVnFia3Ayd2d1Q2lPWlF5ZEdwQUZjR1VCODRRajNOV2RDY0dxUUNSTnNQdjVtTXUydkYwd3J3L0doSDhhVHJpdSIsIm1hYyI6IjYyNDEwNTA4Mzk4OTlhY2RiYzM2OTUxZjZlYjlhM2M4NWVkOTY4YzA0YmRmZjhkOGQxMDMzZjQ1MDhkMDQ5YTgifQ=="},{"description":"token的过期时间","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641876886"},{"description":"token最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641873286"},{"description":"token剩余调用API次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"接口调用源 1:Back 2:App","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"7f00e75b-fef3-4bce-ab20-68f9f6908642","local_parent_id":"87dcc936-5569-445c-8717-ef673f38c60c","name":"退出登录","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883461,"target_id":22524533,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{APP_HOST}}\/login\/login_out","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"退出登录成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"退出登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"5a3fa356-f9af-4e96-8c75-3d76f84f4712","local_parent_id":"8663baa3-4294-462d-a8be-5d33ce1d0b34","name":"获取当前用户信息","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883432,"target_id":22524348,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{APP_HOST}}\/login\/get_user_info","description":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 1,\n\t\t\"nike_name\": \"Scarecrow\",\n\t\t\"username\": \"18888888888\",\n\t\t\"is_supper_admin\": 1,\n\t\t\"tokenInfo\": {\n\t\t\t\"uid\": 1,\n\t\t\t\"token\": \"2ced7119eb2351495f5385fae502187c\",\n\t\t\t\"expire_time\": 1641886855,\n\t\t\t\"update_time\": 1641883258,\n\t\t\t\"call_num\": 1999,\n\t\t\t\"is_invalid\": 0,\n\t\t\t\"src\": 2\n\t\t}\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"1"},{"description":"用户昵称","is_checked":1,"key":"data.nike_name","type":"Text","field_type":"String","value":"Scarecrow"},{"description":"用户登录账号","is_checked":1,"key":"data.username","type":"Text","field_type":"Number","value":"18888888888"},{"description":"是否是超级管理员","is_checked":1,"key":"data.is_supper_admin","type":"Text","field_type":"Number","value":"1"},{"description":"用户Token信息","is_checked":1,"key":"data.tokenInfo","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.tokenInfo.uid","type":"Text","field_type":"Number","value":"1"},{"description":"当前用户的实际TOKEN","is_checked":1,"key":"data.tokenInfo.token","type":"Text","field_type":"String","value":"2ced7119eb2351495f5385fae502187c"},{"description":"当前Token过期时间","is_checked":1,"key":"data.tokenInfo.expire_time","type":"Text","field_type":"Number","value":"1641886855"},{"description":"当前Token更新时间","is_checked":1,"key":"data.tokenInfo.update_time","type":"Text","field_type":"Number","value":"1641883258"},{"description":"当前Token剩余调用API权限次数","is_checked":1,"key":"data.tokenInfo.call_num","type":"Text","field_type":"Number","value":"1999"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.tokenInfo.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"能调用的API源 1:Back 2:App","is_checked":1,"key":"data.tokenInfo.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"ade85257-a83c-442e-b802-8af01c3c20ea","local_parent_id":"9b6b0741-fd15-499b-8118-7edff614a394","name":"用户登录","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883043,"target_id":22523508,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{APP_HOST}}\/login","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"用户名","is_checked":1,"key":"userName","type":"Text","not_null":"1","field_type":"","value":"{{APP_USER_NAME}}","key_var":"","value_var":""},{"description":"用户密码","is_checked":1,"key":"userPwd","type":"Text","not_null":"1","field_type":"","value":"{{APP_USER_PWD}}","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-APP\",  jsonData.data.token);\n            console.log(\"登录成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"登录成功\",\n\t\"data\": {\n\t\t\"uid\": 1,\n\t\t\"token\": \"eyJpdiI6Ii9zb1VWQWo1U0tRaW12a3pROVpybnc9PSIsInZhbHVlIjoiOGlkaE9oTkFjMjB0b1RTT281d0hOWG5qZjZ0STZNVVdENDdaSDZsUnNkV2VoeVM0T1NEanU0TWRxMHZFQSt6TyIsIm1hYyI6IjNjMTllMWNhZDUwZjY3MTAyNTg5YzE4MGZmOTBjY2FiYTYzNzYxODZhMTRjNDM4M2JhNmRlNjY3MTI2NmFmYzcifQ==\",\n\t\t\"expire_time\": 1641875981,\n\t\t\"update_time\": 1641872381,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 2\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.uid","type":"Text","field_type":"Integer","value":"1"},{"description":"用户令牌Token","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6Ik9TUGhLMzB1UDJVRTViUWhKZlZ2cnc9PSIsInZhbHVlIjoialpNT1M0a2NwVVpGVzZ4WDVaVUJxL2h1MHgxQ1FtNEVhTlJxWmd6VkpPYzdGaytZOSt3QmpJSFo4eVgvenE3aCIsIm1hYyI6IjhiMjYyNTA0NTRhMDk4YWUxNjg1MDU0MWM3MjdmYWViZjUzNWVkZWUxMjQwZGI5NjQwMjM2OTY3OThhZmQ3NjMifQ=="},{"description":"过期时间戳","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641808468"},{"description":"最后更新时间戳","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641804868"},{"description":"本Token可以调用次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否过期0：否 1：是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"来源1：back 2：app","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"d154c224-f0dc-4f8c-ad25-6500135afd23","local_parent_id":"7ef33111-e486-479d-88e0-ecb3e29ab374","name":"用户注册","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641883002,"target_id":22523447,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{APP_HOST}}\/login\/register","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"用户名","is_checked":1,"key":"userName","type":"Text","not_null":"1","field_type":"","value":"18888888882","key_var":"","value_var":""},{"description":"用户密码","is_checked":1,"key":"userPwd","type":"Text","not_null":"1","field_type":"","value":"{{APP_USER_PWD}}","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"注册成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"注册成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"644e645d-17b2-45ba-8a6d-e28cf3919edc","local_parent_id":"0","name":"MiniHome","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":2,"create_dtime":1616639819,"update_dtime":1649735678,"target_id":23714965,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"description":"App端模块","header":[{"is_checked":"1","key":"SC-API-TOKEN","value":"{{SC-API-TOKEN-MINI}}","description":"用户登录Token","key_var":"","value_var":"eyJpdiI6InBpM053MkxFbXlRTUFFTXI2N1hqUXc9PSIsInZhbHVlIjoiV2JENWtqRzEvVXJMZjlJeVFMS1dVWGJLUmZUWDdNZmt3dFd4QnlLYTFaR1V4MmlqdHhUTzNLZk01TVR5VzNNNSIsIm1hYyI6ImM2OGZhNzJmOTVmNGU1NGE1NzU0MTNlNGU2ZTRiY2UxMGVhYjlmZTI4NzM3YjhhMWE0MzQyMzU5Yzk2MGEwMWEifQ=="}],"query":[],"body":[],"auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}}},"script":{"pre_script":"","test":"if (!apt.assert('response.raw.type==\"json\"')) {\n    console.error(\"This result not is json\");\n    return false;\n}\n\nvar jsonData = response.json;\nif (jsonData.code == -2) {\n    console.log(\"请在微信开发工具中登录并获取Token\")\n};"},"children":[{"local_target_id":"35318bed-7c16-4d88-9902-89ff0ac128a8","local_parent_id":"644e645d-17b2-45ba-8a6d-e28cf3919edc","name":"登录管理","method":"POST","mark":"developing","is_doc":0,"target_type":"folder","status":1,"sort":0,"create_dtime":1616639819,"update_dtime":1641795080,"target_id":23714966,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"description":"","header":[],"query":[],"body":[],"auth":[]},"script":{"pre_script":"","test":""},"children":[{"local_target_id":"e30f0f9d-c421-4921-8ba5-2995e2ede6cd","local_parent_id":"dc6bae6f-4ee7-4019-a6bc-2986e2b1ee99","name":"更新用户TOKEN","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645690580,"target_id":23716639,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/update_token","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-MINI\",  jsonData.data.token);\n            console.log(\"登录成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"更新TOKEN成功\",\n\t\"data\": {\n\t\t\"token\": \"eyJpdiI6IlYxWXN0K3RFZVlhV1dIUTFoYVJQUmc9PSIsInZhbHVlIjoiVnFia3Ayd2d1Q2lPWlF5ZEdwQUZjR1VCODRRajNOV2RDY0dxUUNSTnNQdjVtTXUydkYwd3J3L0doSDhhVHJpdSIsIm1hYyI6IjYyNDEwNTA4Mzk4OTlhY2RiYzM2OTUxZjZlYjlhM2M4NWVkOTY4YzA0YmRmZjhkOGQxMDMzZjQ1MDhkMDQ5YTgifQ==\",\n\t\t\"expire_time\": 1641876886,\n\t\t\"update_time\": 1641873286,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 2\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"更新TOKEN成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"更新后的用户Token串","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6IlYxWXN0K3RFZVlhV1dIUTFoYVJQUmc9PSIsInZhbHVlIjoiVnFia3Ayd2d1Q2lPWlF5ZEdwQUZjR1VCODRRajNOV2RDY0dxUUNSTnNQdjVtTXUydkYwd3J3L0doSDhhVHJpdSIsIm1hYyI6IjYyNDEwNTA4Mzk4OTlhY2RiYzM2OTUxZjZlYjlhM2M4NWVkOTY4YzA0YmRmZjhkOGQxMDMzZjQ1MDhkMDQ5YTgifQ=="},{"description":"token的过期时间","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641876886"},{"description":"token最后更新时间","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641873286"},{"description":"token剩余调用API次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"接口调用源 1:Back 2:App","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"166377ae-67f9-406a-a553-a8652e10653e","local_parent_id":"fda64334-1988-48fb-82ae-6ff8a717bba0","name":"退出登录","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645690576,"target_id":23716632,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/login_out","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"退出登录成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"退出登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"70c7cbdc-d8e4-43b6-84f5-935706378ff8","local_parent_id":"77a734e8-176a-474b-9abe-dd254a7287db","name":"获取当前用户信息","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645690606,"target_id":23716635,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/get_user_info","description":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取成功\",\n\t\"data\": {\n\t\t\"id\": 1,\n\t\t\"nike_name\": \"Scarecrow\",\n\t\t\"username\": \"18888888888\",\n\t\t\"is_supper_admin\": 1,\n\t\t\"tokenInfo\": {\n\t\t\t\"uid\": 1,\n\t\t\t\"token\": \"2ced7119eb2351495f5385fae502187c\",\n\t\t\t\"expire_time\": 1641886855,\n\t\t\t\"update_time\": 1641883258,\n\t\t\t\"call_num\": 1999,\n\t\t\t\"is_invalid\": 0,\n\t\t\t\"src\": 2\n\t\t}\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.id","type":"Text","field_type":"Number","value":"1"},{"description":"用户昵称","is_checked":1,"key":"data.nike_name","type":"Text","field_type":"String","value":"Scarecrow"},{"description":"用户登录账号","is_checked":1,"key":"data.username","type":"Text","field_type":"Number","value":"18888888888"},{"description":"是否是超级管理员","is_checked":1,"key":"data.is_supper_admin","type":"Text","field_type":"Number","value":"1"},{"description":"用户Token信息","is_checked":1,"key":"data.tokenInfo","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.tokenInfo.uid","type":"Text","field_type":"Number","value":"1"},{"description":"当前用户的实际TOKEN","is_checked":1,"key":"data.tokenInfo.token","type":"Text","field_type":"String","value":"2ced7119eb2351495f5385fae502187c"},{"description":"当前Token过期时间","is_checked":1,"key":"data.tokenInfo.expire_time","type":"Text","field_type":"Number","value":"1641886855"},{"description":"当前Token更新时间","is_checked":1,"key":"data.tokenInfo.update_time","type":"Text","field_type":"Number","value":"1641883258"},{"description":"当前Token剩余调用API权限次数","is_checked":1,"key":"data.tokenInfo.call_num","type":"Text","field_type":"Number","value":"1999"},{"description":"是否失效0:否 1:是","is_checked":1,"key":"data.tokenInfo.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"能调用的API源 1:Back 2:App","is_checked":1,"key":"data.tokenInfo.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"5ae7f30f-bc3f-4b6e-8ee2-0cd0e73e8e5f","local_parent_id":"42b5fea6-f6e9-4c83-95b2-a9fc30c85149","name":"解密微信加密数据","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645692565,"target_id":23717012,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/decryptdata","description":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[{"description":"加密数据","is_checked":1,"key":"encryptedData","type":"Text","not_null":"1","field_type":"String","value":"1AntABnKWOX2Zc4GTugGwJCDLkplwavyl3wG1U3NleamreLtqaEAAE\/Y29TZCjyNAUuvz6Ij1nYEttD\/EWOMI1KTnM\/v4LrN\/S8G\/b1eHy6AE+Itrjs59O9Y7wYUxJvY7bXBdC8xOeUFtuV3gK0XHYguWUwvrp5MBLV0ddwu0PNWqyxS2OxyIGFS+Guj5gUghbxQJTmF2Zf1tcE9DSU2KmZL\/9XaecaUZPlx6hmXZshC8Kv6ZRq\/1M2WkhofSiEnwYhCScGc440loXUxit9gsW8m4WtzOhXN\/XSXrOryzQZGoGzXesQneuD3XtYOqORPNOMR9miz\/4fIw4P20nXdhn+NN7iQKz2\/0TGVIFQVDIWB6Kq7O3M2u5579LvGUucx2\/K4JGZsInAdMcaF1g96Pw8dpbZHAixebtbHHRrYnRppu3TSP8BUowbuOuUrik+QovlQUTjy22Fs+NLqjYtr7w==","key_var":"","value_var":""},{"description":"偏移量","is_checked":1,"key":"iv","type":"Text","not_null":"1","field_type":"String","value":"inMW9uoMx9oziNztGEM\/1Q==","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"解析成功\",\n\t\"data\": {\n\t\t\"openId\": \"oUfEI0YgmswunUTYXZ50ElzDm7sg\",\n\t\t\"nickName\": \"微信用户\",\n\t\t\"gender\": 0,\n\t\t\"language\": \"\",\n\t\t\"city\": \"\",\n\t\t\"province\": \"\",\n\t\t\"country\": \"\",\n\t\t\"avatarUrl\": \"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg\/132\",\n\t\t\"watermark\": {\n\t\t\t\"timestamp\": 1645690907,\n\t\t\t\"appid\": \"wxae0e7d5ef43218b7\"\n\t\t}\n\t},\n\t\"code\": 200\n}\n\n# 注意：当因为SESSION KEY失效解析失败会返回code:-5,当验证到code=-5时需要小程序端再次主动调用登录接口并刷新session_key","parameter":[{"description":"","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"解析成功"},{"description":"返回数据","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.openId","type":"Text","field_type":"String","value":"oUfEI0YgmswunUTYXZ50ElzDm7sg"},{"description":"","is_checked":1,"key":"data.nickName","type":"Text","field_type":"String","value":"微信用户"},{"description":"","is_checked":1,"key":"data.gender","type":"Text","field_type":"Number","value":"0"},{"description":"","is_checked":1,"key":"data.language","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.city","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.province","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.country","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.avatarUrl","type":"Text","field_type":"String","value":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg\/132"},{"description":"","is_checked":1,"key":"data.watermark","type":"Text","field_type":"Object","value":""},{"description":"","is_checked":1,"key":"data.watermark.timestamp","type":"Text","field_type":"Number","value":"1645690907"},{"description":"","is_checked":1,"key":"data.watermark.appid","type":"Text","field_type":"String","value":"wxae0e7d5ef43218b7"},{"description":"微信获取手机CODE","is_checked":1,"key":"code","type":"Text","field_type":"Number","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"e8239287-a8da-4d86-9d58-ee60b29a53ca","local_parent_id":"610be1a2-2c92-49aa-bd7e-aaa5a9843a3a","name":"获取微信手机号","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645691164,"target_id":23717322,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/getwechatphonenumber","description":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[{"description":"微信获取手机CODE","is_checked":1,"key":"code","type":"Text","not_null":"1","field_type":"String","value":"7d77eefb90cff6717c18e442f88c5dfd35428e507a4db5f0a4a195a61b0be657","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"获取手机号成功\",\n\t\"data\": {\n\t\t\"errcode\": 0,\n\t\t\"errmsg\": \"ok\",\n\t\t\"phone_info\": {\n\t\t\t\"phoneNumber\": \"18996105467\",\n\t\t\t\"purePhoneNumber\": \"18996105467\",\n\t\t\t\"countryCode\": \"86\",\n\t\t\t\"watermark\": {\n\t\t\t\t\"timestamp\": 1645691030,\n\t\t\t\t\"appid\": \"wxae0e7d5ef43218b7\"\n\t\t\t}\n\t\t}\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"获取手机号成功"},{"description":"返回数据","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"微信错误码","is_checked":1,"key":"data.errcode","type":"Text","field_type":"Number","value":"0"},{"description":"微信错误信息","is_checked":1,"key":"data.errmsg","type":"Text","field_type":"String","value":"ok"},{"description":"手机号信息对象","is_checked":1,"key":"data.phone_info","type":"Text","field_type":"Object","value":""},{"description":"手机号（国外的手机有区号）","is_checked":1,"key":"data.phone_info.phoneNumber","type":"Text","field_type":"Number","value":"18996105467"},{"description":"没有区号的手机号","is_checked":1,"key":"data.phone_info.purePhoneNumber","type":"Text","field_type":"Number","value":"18996105467"},{"description":"区号","is_checked":1,"key":"data.phone_info.countryCode","type":"Text","field_type":"Number","value":"86"},{"description":"数据水印","is_checked":1,"key":"data.phone_info.watermark","type":"Text","field_type":"Object","value":""},{"description":"时间戳","is_checked":1,"key":"data.phone_info.watermark.timestamp","type":"Text","field_type":"Number","value":"1645691030"},{"description":"APPID","is_checked":1,"key":"data.phone_info.watermark.appid","type":"Text","field_type":"String","value":"wxae0e7d5ef43218b7"},{"description":"微信获取手机CODE","is_checked":1,"key":"code","type":"Text","field_type":"Number","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"9c1f7984-9c14-42bb-916f-064932c72b8a","local_parent_id":"a834e3d4-92fe-4a20-b854-b2004188b2f6","name":"用户登录","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645690187,"target_id":23716281,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"微信登录CODE","is_checked":1,"key":"code","type":"Text","not_null":"1","field_type":"","value":"1232312","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":"if (response.raw.type == \"json\") {\n    var jsonData = response.json\n    if (jsonData.status == \"YES\") {\n        if (jsonData.data?.token) {\n            apt.variables.set(\"SC-API-TOKEN-APP\",  jsonData.data.token);\n            console.log(\"登录成功\");\n        }\n    }\n} else {\n    console.log(\"response type not is json\");\n}"},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"登录成功\",\n\t\"data\": {\n\t\t\"uid\": 1,\n\t\t\"token\": \"eyJpdiI6Ii9zb1VWQWo1U0tRaW12a3pROVpybnc9PSIsInZhbHVlIjoiOGlkaE9oTkFjMjB0b1RTT281d0hOWG5qZjZ0STZNVVdENDdaSDZsUnNkV2VoeVM0T1NEanU0TWRxMHZFQSt6TyIsIm1hYyI6IjNjMTllMWNhZDUwZjY3MTAyNTg5YzE4MGZmOTBjY2FiYTYzNzYxODZhMTRjNDM4M2JhNmRlNjY3MTI2NmFmYzcifQ==\",\n\t\t\"expire_time\": 1641875981,\n\t\t\"update_time\": 1641872381,\n\t\t\"call_num\": 2000,\n\t\t\"is_invalid\": 0,\n\t\t\"src\": 3\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"登录成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"用户ID","is_checked":1,"key":"data.uid","type":"Text","field_type":"Integer","value":"1"},{"description":"用户令牌Token","is_checked":1,"key":"data.token","type":"Text","field_type":"String","value":"eyJpdiI6Ik9TUGhLMzB1UDJVRTViUWhKZlZ2cnc9PSIsInZhbHVlIjoialpNT1M0a2NwVVpGVzZ4WDVaVUJxL2h1MHgxQ1FtNEVhTlJxWmd6VkpPYzdGaytZOSt3QmpJSFo4eVgvenE3aCIsIm1hYyI6IjhiMjYyNTA0NTRhMDk4YWUxNjg1MDU0MWM3MjdmYWViZjUzNWVkZWUxMjQwZGI5NjQwMjM2OTY3OThhZmQ3NjMifQ=="},{"description":"过期时间戳","is_checked":1,"key":"data.expire_time","type":"Text","field_type":"Integer","value":"1641808468"},{"description":"最后更新时间戳","is_checked":1,"key":"data.update_time","type":"Text","field_type":"Integer","value":"1641804868"},{"description":"本Token可以调用次数","is_checked":1,"key":"data.call_num","type":"Text","field_type":"Integer","value":"2000"},{"description":"是否过期0：否 1：是","is_checked":1,"key":"data.is_invalid","type":"Text","field_type":"Number","value":"0"},{"description":"来源1：back 2：app","is_checked":1,"key":"data.src","type":"Text","field_type":"Number","value":"2"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"6fb4e441-e9ad-48e1-8a65-9aee8248a5a4","local_parent_id":"8649c5b1-cfa8-4108-878d-2ea2ed2a8aa2","name":"用户注册","method":"POST","mark":"complated","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1645690246,"target_id":23716341,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{MINI_HOST}}\/login\/register","description":"","auth":{"type":"noauth"},"body":{"mode":"urlencoded","parameter":[{"description":"微信登录CODE","is_checked":1,"key":"loginCode","type":"Text","not_null":"1","field_type":"","value":"123456","key_var":"","value_var":""},{"description":"微信获取电话CODE","is_checked":1,"key":"phoneCode","type":"Text","not_null":"1","field_type":"","value":"231231","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"注册成功\",\n\t\"data\": [],\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"注册成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}}]},{"local_target_id":"d6498d96-f739-4510-bbe3-f48d530e055c","local_parent_id":"0","name":"测试接口","method":"POST","mark":"developing","is_doc":0,"target_type":"api","status":1,"sort":3,"create_dtime":1616639819,"update_dtime":1652929949,"target_id":22472100,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"http:\/\/www.lumenbase.com\/test","description":"这个接口是测试接口，这里是说明文档","auth":{"type":"noauth"},"body":{"mode":"form-data","parameter":[{"is_checked":1,"type":"Text","key":"name","value":"312312","not_null":1,"description":"","field_type":"Text","__DATAKEY__":"a8f920c7-1fc4-4bbd-bb2d-8c02d90703c1","key_var":"","value_var":""},{"is_checked":1,"type":"File","key":"f4","value":"C:\\Users\\13666\\Pictures\\Camera Roll_back\\)$DFEPK{}ZNGSQG0]UZ3KCD.png","not_null":1,"description":"","field_type":"Text","__DATAKEY__":"a7548b2f-79c7-47ad-969e-e7c00e4ec27f","key_var":"","value_var":""},{"is_checked":"1","type":"File","key":"f1","value":"C:\\Users\\13666\\Pictures\\Camera Roll_back\\XXG~@R)GF(0D}@G9~MV)OBQ.png","not_null":1,"description":"","field_type":"Text","__DATAKEY__":"6042d4de-0c96-4a7a-9169-2b774dbe06be","key_var":"","value_var":""}],"raw":"","raw_para":[]},"event":{"pre_script":"\/\/ console.log(str)","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]},"url_var":"http:\/\/www.lumenbase.com\/test"},"response":{"success":{"raw":"{\"status\":\"YES\",\"info\":\"Test1\",\"data\":[],\"code\":200}","parameter":[{"description":"","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"Test1"},{"description":"返回数据","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":"{}"},{"description":"","is_checked":1,"key":"code","type":"Text","field_type":"Number","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"bd658071-3957-4b7b-947b-aa5333ad1bce","local_parent_id":"33919c21-15d0-4eaf-9fa5-0481e21729d4","name":"ApiSign 测试接口","method":"POST","mark":"developing","is_doc":0,"target_type":"example","status":1,"sort":1,"create_dtime":1616639819,"update_dtime":1641882845,"target_id":22523282,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"{{HOST}}\/sign","description":"","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"{\n\t\"status\": \"YES\",\n\t\"info\": \"验签成功\",\n\t\"data\": {\n\t\t\"\/sign\": \"\",\n\t\t\"randstr\": \"msfef\",\n\t\t\"platform\": \"h5\",\n\t\t\"timestamp\": \"1641882583\",\n\t\t\"sign\": \"227ef0d390f757f9b639041f0bf51302\"\n\t},\n\t\"code\": 200\n}","parameter":[{"description":"状态 YES\/NO","is_checked":1,"key":"status","type":"Text","field_type":"String","value":"YES"},{"description":"状态描述","is_checked":1,"key":"info","type":"Text","field_type":"String","value":"验签成功"},{"description":"返回数据对象","is_checked":1,"key":"data","type":"Text","field_type":"Object","value":""},{"description":"随机字符串","is_checked":1,"key":"data.randstr","type":"Text","field_type":"String","value":"msfef"},{"description":"平台标识","is_checked":1,"key":"data.platform","type":"Text","field_type":"String","value":"h5"},{"description":"当前时间戳","is_checked":1,"key":"data.timestamp","type":"Text","field_type":"Number","value":"1641882583"},{"description":"签名","is_checked":1,"key":"data.sign","type":"Text","field_type":"Number","value":"227ef0d390f757f9b639041f0bf51302"},{"description":"状态码 兼容HTTPCODE","is_checked":1,"key":"code","type":"Text","field_type":"Integer","value":"200"}]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"a8706a21-1243-464b-f4bb-b33511bafe4e","local_parent_id":"05825064-eaf0-48df-ada3-80cd9e99a637","name":"签名算法","method":"POST","mark":"complated","is_doc":1,"target_type":"example","status":1,"sort":1,"create_dtime":1647218940,"update_dtime":1647218940,"target_id":24408822,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"","description":"# API签名文档\n## 返回说明\n    当验签或鉴权失败时会返回此接口值\n    code:\n        -1:代表用户验签失败\n        -2:代表用户token失效\n        XXX:与HTTP CODE一致\n        \n## APP鉴权说明:\n    1、必须包含sign(签名)，randstr（随机字符串）字段，timestamp(时间戳不带毫秒),platform(平台字段 且值只能为  （移动端：h5 ）、（安卓端：android ）、(苹果端：ios)、(PC端))没有这些字段自动判定为失败\n    2、鉴权规则：\n        1、所有传输的参数必须为字符串，无论KEY还是VALUE都必须是字符串，鉴于这个原因凡是有参数需要传多维数组的都请使用json进行序列化后进行传参\n        2、第一步：将所有值为非空值的参数值进行MD5计算 计算方式: md5(key_value)\n        3、第二步：将所有计算后的值进行字符串排序，顺序为升序\n        4、第三步：将所有的参数组合成 key=md5(key_value)&的格式，前后两边&移除\n        5、第四步：在第三步的结果上前后都加上  bs:(cijz0Yyx@Tk6\"C*Jo>!P2v8npZm]~&G%^<1A  然后进行MD5计算得到sign值\n        6、第四步，将sign值加入到请求地址中，带着访问即可。\n\n## 已有源码版本\n    JS\/PHP\/JAVA\n    源码地址:http:\/\/gitlab.kupurui.cn\/1366635163\/php_tool\/-\/tree\/master\/sign\n\n## 步骤示例:\n    例如请求参数为 http:\/\/host\/api?name=Scarecrow&randstr=yhpid&platform=h5&timestamp=1642144615&love=\n    \n    下面演示如何求得sign：\n    1、现将所有的参数中的空值移除，所以需要进行签名的是\n    name=Scarecrow  \n    randstr=yhpid  \n    platform=h5 \n    timestamp=1642144615 \n\n    2、对所有参数的值进行md5计算:\n      'name' => string '7db37d7aeb86b372ece8c3cfe6d495b0' (length=32)\n      'randstr' => string '4383accf0fde9bd4fe68269714b55292' (length=32)\n      'platform' => string 'b7f1c047118b621c1dad917bdfe7775d' (length=32)\n      'timestamp' => string 'f2ad7a77635a4c868437f88974c3ae5f' (length=32)\n      \n    3、对值进行字符串升序排序：\n      'randstr' => string '4383accf0fde9bd4fe68269714b55292' (length=32)\n      'name' => string '7db37d7aeb86b372ece8c3cfe6d495b0' (length=32)\n      'platform' => string 'b7f1c047118b621c1dad917bdfe7775d' (length=32)\n      'timestamp' => string 'f2ad7a77635a4c868437f88974c3ae5f' (length=32)\n    \n    4、将排好序的参数拼成字符串\n    randstr=4383accf0fde9bd4fe68269714b55292&name=7db37d7aeb86b372ece8c3cfe6d495b0&platform=b7f1c047118b621c1dad917bdfe7775d&timestamp=f2ad7a77635a4c868437f88974c3ae5f\n    \n    5、在4的字符串前后加上预先约定好的盐值:\"ABCDEFGHIJKLMN\" 字符串并进行MD5计算\n    Md5(ABCDEFGHIJKLMNrandstr=4383accf0fde9bd4fe68269714b55292&name=7db37d7aeb86b372ece8c3cfe6d495b0&platform=b7f1c047118b621c1dad917bdfe7775d&timestamp=f2ad7a77635a4c868437f88974c3ae5fABCDEFGHIJKLMN\n    ) 得到值 00907ce138b600052c39cf44ec0ed2a4\n    \n    \n    最后将sign=00907ce138b600052c39cf44ec0ed2a4 加入到请求的路径中得到\n    http:\/\/host\/api?name=Scarecrow&randstr=yhpid&platform=h5&timestamp=1642144615&love=&sign=00907ce138b600052c39cf44ec0ed2a4\n    这样就完成了签名","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"","parameter":[]},"error":{"raw":"","parameter":[]}}},{"local_target_id":"bd6d2faf-caca-41e0-cf08-4cf7c622f14a","local_parent_id":"061b8fb3-eb9d-47aa-bf56-08252063477f","name":"全局接口调用说明","method":"POST","mark":"complated","is_doc":1,"target_type":"example","status":1,"sort":1,"create_dtime":1647218996,"update_dtime":1647218997,"target_id":24408839,"create_users":{"create_user":"Scarecrow","update_user":"Scarecrow"},"request":{"url":"","description":"正式服地址:http:\/\/online.com\n测试服地址:http:\/\/test.com\n\n开发时使用测试地址\n上线后切换到正式地址\n\n# 接口调用方式\n根据文档的说明调用，但是需要登录权限的接口，需要将登录接口中返回的Token填写到header中,SC-API-TOKEN: 你得到的token","auth":{"type":"noauth","kv":{"key":"","value":""},"bearer":{"key":""},"basic":{"username":"","password":""}},"body":{"mode":"urlencoded","parameter":[],"raw":"","raw_para":[]},"event":{"pre_script":"","test":""},"header":{"parameter":[]},"query":{"parameter":[]},"cookie":{"parameter":[]},"resful":{"parameter":[]}},"response":{"success":{"raw":"","parameter":[]},"error":{"raw":"","parameter":[]}}}]};
    function GetUrlQuery(uri) {
        let url = '';
        if (typeof uri === 'undefined') {
            url = window.location.search;
        } else {
            url = `?${uri.split('?')[1]}`;
        }
        const theRequest = {};
        if (url.indexOf('?') !== -1) {
            const str = url.substr(1);
            const strs = str.split('&');
            for (let i = 0; i < strs.length; i++) {
                theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]);
            }
        }
        return theRequest;
    };

    function findFatherDom(el) {
        if (el.parent().parent().children(":first").hasClass('folder')) {
            el.parent().parent().show()
            console.log(el.parent().parent());
            el.parent().parent().children().show()
            el.parent().parent().children(":first").find('.folder_select').removeClass('right').addClass('down')
            el.parent().parent().children(":first").nextAll('.folder').find('folder_select').removeClass('down').addClass('right')
            findFatherDom(el.parent().prev())
        } else {
            el.parent().children().show()
            return
        }
    }
    window.onload = function () {
        // const { url, salt } = GetUrlQuery();
        const head_obj = {
            portrait: arr.portrait,
        }
        let head_html = template('doc-head-tpl', head_obj);

        $('.doc-head .container').html(head_html)
        let _html = template('template-target-sidebar-list-tpl', {
            list: arr.children
        });

        $('.new').html(_html)
        let project_name_html = template('project-name-tpl', {
            project_name: arr.project_name
        });
        $('.box-first .title').html(project_name_html)

        $('.target.folder').find('.folder_select').removeClass('down').addClass('right')
        $('.target.folder').nextAll().hide()
        let urlLink = window.location.href;
        let id = urlLink.split('#')[1] ? urlLink.split('#')[1] : '001'
        if ($(`.target[data-target_id="${id}"]`).length > 0) {
            if (id != '001') {
                findFatherDom($(`.target[data-target_id="${id}"]`))
            }

            $(`.target[data-target_id="${id}"]`).trigger('click')
        } else {
            location.href = urlLink.split('#')[0] + "#001"
            return
        }
        var resize = document.getElementsByClassName("bar");
        var left = document.getElementsByClassName("box-first");
        var mid = document.getElementsByClassName("box-third");
        var box = document.getElementsByClassName("box");
        console.log(123434);
        dragControllerDiv(resize, left, mid, box);
        $('.target.folder').find('.folder_select').removeClass('down').addClass('right')
        $('.target.folder').nextAll().hide()

    }
    $('.body').show()
    $(document).on('click', '.target', function () {
        let _local_target_id = $(this).attr('data-target_id');
        let urlLink = window.location.href.split('#')[0] + '#' + _local_target_id;

        const { url, salt } = GetUrlQuery();
        const token = localStorage.getItem(`token${url}`);
        history.replaceState(null, null, urlLink)
        console.log(url);

        $('.target').each((i, el) => {
            $(el).removeClass('active')
        })
        if ($(this).attr('data-type') == 'folder') {
            $('.box-nav').show()
            $(this).nextAll().show()
            $(this).find('.folder_select').removeClass('right').addClass('down')
            $('.box-nav .folder').show()
            $('.box-nav .api').hide()
        } else if ($(this).attr('data-type') == 'example' || $(this).attr('data-type') == 'api') {
            $('.box-nav').show()
            $('.box-nav .api').show()
            $('.box-nav .folder').hide()
        } else {
            $('.box-nav').hide()
        }

        $(this).addClass('active')
        // if (_local_target_id == 001 || !_local_target_id) {
        //   return;
        // }
        let newdata = JSON.parse(JSON.stringify(arr))
        let LevelArr = []

        function levelTree(arr1, newarr) {
            arr1.forEach(item => {
                if (item.children && item.children.length > 0) {
                    newarr.push(item)
                    levelTree(item.children, newarr)
                } else {
                    newarr.push(item)
                }
            })
        }

        levelTree(newdata.children, LevelArr)
        LevelArr.forEach(item => {
            if (item.local_target_id == _local_target_id) {
                if (item.target_type == 'example' || item.target_type == 'api') {
                    switch (item.request.body.mode) {
                        case "none":
                            break;
                        case "form-data":
                            item.request.body.mode = "multipart/form-data";
                            break;
                        case "urlencoded":
                            item.request.body.mode = "application/x-www-form-urlencoded";
                            break;
                        case "json":
                            item.request.body.mode = "application/json";
                            break;
                        case "xml":
                            item.request.body.mode = "application/xml";
                            break;
                        case "javascript":
                            item.request.body.mode = "application/javascript";
                            break;
                        case "plain":
                            item.request.body.mode = "text/plain";
                            break;
                        case "html":
                            item.request.body.mode = "text/html";
                            break;
                    }
                    $('.template-nav-menu').html(template('template-nav-menu-tpl', item));
                    if (item.target_type != 'folder') {
                        let _export_data = new ClipboardJS('.CopyCurrentData', {
                            text: function (trigger) {
                                return trigger.getAttribute('data-clipboard-text');
                            }
                        });
                        console.log(_export_data);
                        _export_data.on('success', function (e) {
                            $('.CopyCurrentData').text('已复制').addClass('success');
                            e.clearSelection();
                        });
                        _export_data.on('error', function (e) {
                            console.log('失败');
                        });
                    }
                }
                arr?.project?.vars?.mark.forEach((it) => {
                    if (it.key == item.mark) {
                        if (it.color == '') {
                            if (item.mark == 'developing') {
                                item.markName = '开发中'
                                item.markColor = 'rgb(58, 134, 255)'
                            }
                            if (item.mark == 'complated') {
                                item.markName = '已完成'
                                item.markColor = 'rgb(46, 196, 182)'
                            }
                            if (item.mark == 'modifying') {
                                item.markName = '需修改'
                                item.markColor = 'rgb(236, 70, 70)'
                            }
                        } else {
                            item.markName = it.name
                            item.markColor = it.color
                        }
                    }
                })
                let _html = template('template-example-doc-tpl', item);
                $('.preview-markdown').html(_html)
                if (item.target_type == 'folder') {
                    const folderData = { ...item }
                    if (item.target_type == 'folder') {
                        folderData?.request?.header?.forEach((it, index) => !it.key && folderData.request?.header.splice(index, 1))
                        folderData?.request?.query?.forEach((it, index) => !it.key && folderData.request?.query.splice(index, 1))
                        folderData?.request?.body?.forEach((it, index) => !it.key && folderData.request?.body.splice(index, 1))
                    }
                    let _html = template('template-example-doc-tpl', folderData);
                    if ($('table.header tr').length <= 1) {
                        $('table.header').parent().hide()
                        $('table.header').parent().prev().hide()
                        $('.nav-folder-btn[data-id="1"]').hide()
                        // $('table.header tr').after('<tr><td colspan="4" style="text-align:center">暂无数据</td></tr>')
                    }
                    if ($('table.query tr').length <= 1) {
                        $('table.query').parent().hide()
                        $('table.query').parent().prev().hide()
                        $('.nav-folder-btn[data-id="2"]').hide()
                        // $('table.query tr').after('<tr><td colspan="4" style="text-align:center">暂无数据</td></tr>')
                    }
                    if ($('table.body tr').length <= 1) {
                        $('table.body').parent().hide()
                        $('table.body').parent().prev().hide()
                        $('.nav-folder-btn[data-id="3"]').hide()
                        // $('table.body tr').after('<tr><td colspan="4" style="text-align:center">暂无数据</td></tr>')
                    }
                    if ($('table.header tr').length <= 1 && $('table.query tr').length <= 1 && $('table.body tr').length <= 1) {
                        $('table.header').parents('.markdown-request').prev().hide()
                        $('.box-nav .nav-folder-btn[data-id="0"]').hide()
                        $('.preview-markdown .markdown-request').after('<div style="overflow: hidden;text-align: center;height: 100%;"><img src="https://img.cdn.apipost.cn/v6/docs/img/empty.svg" style="width:100px;margin: 70px auto 20px;;">暂无参数</div>')

                    }
                    hljs.initHighlighting();
                } else {
                    let _export_data = new ClipboardJS('.CopyCurrentData', {
                        text: function (trigger) {
                            return trigger.getAttribute('data-clipboard-text');
                        }
                    });
                    console.log(_export_data);
                    _export_data.on('success', function (e) {
                        $('.CopyCurrentData').text('已复制').addClass('success');
                        e.clearSelection();
                    });
                    _export_data.on('error', function (e) {
                        console.log('失败');
                    });
                    $('.CopyCurrentData').attr('data-clipboard-text', JSON.stringify(item));
                }
                try {
                    let obj = item.request.body.raw_para.map(item => {
                        let arr = item.key.split('.')
                        item.newKey = arr[arr.length - 1]
                        return item
                    })

                    let editor = new JsonEditor('#request_body_raw_editor_json', JSON5.parse($('#request_body_raw_editor_input').val()), {}, obj).load(JSON5.parse($('#request_body_raw_editor_input').val()), obj)
                } catch (e) {
                    console.log(e);
                }
                // 成功响应示例
                try {
                    let obj = item.response.success.parameter.map(item => {
                        let arr = item.key.split('.')
                        item.newKey = arr[arr.length - 1]
                        return item
                    })
                    let editor = new JsonEditor('#response_success_editor_json', JSON5.parse($('#response_success_editor_input').val()), {}, obj).load(JSON5.parse($('#response_success_editor_input').val()), obj)
                } catch (e) { console.log(e); }
                // 失败响应示例
                try {
                    let obj = item.response.error.parameter.map(item => {
                        let arr = item.key.split('.')
                        item.newKey = arr[arr.length - 1]
                        return item
                    })

                    let editor = new JsonEditor('#response_error_editor_json', JSON5.parse($('#response_error_editor_input').val()), {}, obj).load(JSON5.parse($('#response_error_editor_input').val()), obj)
                } catch (e) { console.log(e); }
                aptIndent.init();
            }
        })
        $("table").colResizable({
            liveDrag: true,
            gripInnerHtml: "<div class='grip'></div>",
            draggingClass: "dragging",
            resizeMode: 'fit'
        });
    })
        .on('click', '.control', function (e) {
            e.stopPropagation()
            let type = $(this).find('.folder_select').hasClass('down')
            if (type) {
                $(this).find('.folder_select').removeClass('down').addClass('right')
            } else {
                $(this).find('.folder_select').removeClass('right').addClass('down')
            }
            $(this).parents('.target').nextAll().toggle()
        })
        .on('input', '.search', function (e) {
            if (timer) {
                clearTimeout(timer);
            }
            timer = setTimeout(() => {
                let searchVal = $(this).val().toLocaleLowerCase()
                let TreeData = JSON.parse(JSON.stringify(arr.children))
                let searchArr = []
                let LevelArr = []
                let fatherArr = []
                function openTree(tree, parent_id) {
                    tree.forEach((item) => {
                        if (item.children && item.children.length > 0) {
                            openTree(item.children, item.local_target_id)
                        }
                        item.parent_id = parent_id
                    })
                }
                openTree(TreeData, 0);
                function levelTree(arr, newarr) {
                    arr.forEach(item => {
                        if (item.children && item.children.length > 0) {
                            newarr.push(item)
                            levelTree(item.children, newarr)
                        } else {
                            newarr.push(item)
                        }
                    })
                }
                levelTree(TreeData, LevelArr)
                if ($.trim(searchVal) != '') {
                    LevelArr.forEach(item => {
                        if (item.target_type == 'folder') {
                            if (item.name.toString().toLocaleLowerCase().indexOf(searchVal) > -1) {
                                searchArr.push(item)
                            }
                        } else {
                            if (item.name.toString().toLocaleLowerCase().indexOf(searchVal) > -1 || item.method.toString().toLocaleLowerCase().indexOf(searchVal) > -1) {
                                searchArr.push(item)
                            }
                        }
                    })
                    searchArr.forEach(item => {
                        findFather(fatherArr, LevelArr, item)
                    })

                    function findFather(tempArr, arr, self) {
                        if (self.parent_id != 0) {
                            arr.filter(item => {
                                if (self.parent_id == item.local_target_id) {
                                    findFather(tempArr, arr, item);
                                    if (tempArr.indexOf(item) === -1) {
                                        tempArr.push(item);
                                    }
                                }
                            })
                        }
                    }

                    let finnalArr = searchArr.concat(fatherArr)
                    $('.target').hide()
                    $('.target[data-target_id="001"]').show()
                    finnalArr.forEach(item => {
                        $(`.target[data-target_id="${item.local_target_id}"]`).parent().show()
                        $(`.target[data-target_id="${item.local_target_id}"]`).show()
                        $('.target.folder').find('.folder_select').removeClass('right').addClass('down')
                    })
                } else {
                    $('.target').parent().show()
                    $('.target').show()
                }
            }, 100)
        })
        .on('mouseover', '.target.api', function () {
            // $(this).find('em').css({ visibility: 'visible' })
        })
        .on('mouseleave', '.target.api', function () {
            // $(this).find('em').css({ visibility: 'hidden' })
        })
        .on('click', '.nav-btn', function () {
            let index = parseInt($(this).attr('data-id'))
            $('.nav-btn').removeClass('cur')
            $(this).addClass('cur')
            console.log(index, $('.box-third .title').eq(index)[0]);
            let top = $('.box-third .title').eq(index)[0].offsetTop
            $('.box-third').scrollTop(top)
        })
        .on('click', '.nav-folder-btn', function () {
            let index = parseInt($(this).attr('data-id'))
            $('.nav-folder-btn').removeClass('cur')
            $(this).addClass('cur')
            let top = $('.box-third .title').eq(index)[0].offsetTop
            $('.box-third').scrollTop(top)
        })
        .on('click', '.box-first .top', function () {
            $('.target').removeClass('active')
            $(this).addClass('active')
            const obj = { ...arr?.project }
            obj.create_dtime = arr?.create_time
            obj.expire_time = arr?.expire_time
            obj?.vars?.request?.header?.forEach((it, index) => {
                if (!it.key) {
                    obj?.vars?.request?.header?.splice(index, 1)
                }
            })
            obj?.vars?.request?.query?.forEach((it, index) => {
                if (!it.key) {
                    obj?.vars?.request?.query?.splice(index, 1)
                }
            })
            obj?.vars?.request?.body?.forEach((it, index) => {
                if (!it.key) {
                    obj?.vars?.request?.body?.splice(index, 1)
                }
            })
            let _html = template('golbal-env-tpl', obj);
            $('.preview-markdown').html(_html)
        })
        .on('click', 'h3.title', function () {
            let type = $(this).find('i').hasClass('fa-angle-down')
            if (type) {
                $(this).find('i').removeClass('fa-angle-down').addClass('fa-angle-left')
            } else {
                $(this).find('i').removeClass('fa-angle-left').addClass('fa-angle-down')
            }
            $(this).next().toggle()
        })
        .on('mouseover', '.export', function () {
            $(this).find('.export_panel').show()
        })
        .on('mouseleave', '.export', function () {
            $(this).find('.export_panel').hide()
        })
    $(".box-third").scroll(function () {
        let arr = []
        $('.box-third .title').each((i, el) => {
            arr.push($(el)[0].offsetTop)
        })
        arr.push(arr[arr.length - 1] + 10000)
        let topHeight = $(this).scrollTop();
        if ($('.target.active').hasClass('api')) {
            for (let index = 0; index < arr.length; index++) {
                if (arr[index] < topHeight && topHeight < arr[index + 1]) {
                    $('.nav-btn').removeClass('cur')
                    $('.nav-btn').eq(index).addClass('cur')
                }
            }
        } else {
            for (let index = 0; index < arr.length; index++) {
                if (arr[index] < topHeight && topHeight < arr[index + 1]) {
                    $('.nav-folder-btn').removeClass('cur')
                    $('.nav-folder-btn').eq(index).addClass('cur')
                }
            }
        }
    });
</script>

</body>

</html>
